我似乎在使用[foo]()
样式语法实例化嵌套类类型的空数组时遇到问题:
// Playground - noun: a place where people can play
class outsideClass {
}
class Wrapper {
class InsideClass {
}
}
var foo = [outsideClass]() // Works fine
// Invalid use of '()' to call a value of non-function type '[Wrapper.InsideClass.Type]'
var bar = [Wrapper.InsideClass]()
这是我误会的东西吗(早在我喝咖啡之前,但我已经查看了发行说明,并且我认为您应该能够引用这样的嵌套类)或Beta 7中的错误?
这可以作为一种解决方法:
var foobar: [Wrapper.InsideClass] = []
这肯定看起来像是编译器中的错误,尤其是 允许 您实例化嵌套类的空数组就好了。它根本不适用于初始化程序语法。
我会提出一个错误。同时,对于遇到问题的任何人,都可以通过使用赋值语法,空数组和变量的指定类(而不是构造函数语法)来解决此问题:
var foobar: [Wrapper.InsideClass] = []
但是为什么在下面的情景中允许静态嵌套类对象的实例化呢? 为什么我们可以创建内部类的对象,如果它被标记为静态的?
问题内容: 我已经开始学习用于Android应用程序开发的Java语言。 根据我对静态类的理解,我们无法实例化静态类的对象。 但是,为什么在随后的情况下允许实例化静态嵌套类对象? 如果将内部类的对象标记为静态,为什么我们可以创建它呢? 问题答案: 根据我对静态类的理解,我们无法实例化静态类的对象。 您对“静态类”的含义的理解不正确。基本上, Java中 的“静态类” 是嵌套类,它没有对包含类的实例
定义参数化类时,只能使用固定数量的参数。 但是,如果你想创建一个包含多个值的地图。必须使用映射
问题内容: 这节课: 无法编译: 因为( 根据Java语言规范 Java SE 8 Edition 的 第 8.1.4节“超类和子类”)类将直接依赖于“本身”,因为类直接取决于“ [其] 或子句[…中提到的”的任何类型。 ]作为超类或超接口名称的完全限定形式的限定符。” 但是我真的不明白这里的动机。什么是有问题的依赖关系?是否只是为了与非语言环境保持一致(因此最终将以其自身的词汇包围实例)? 问题
来自JavaScript背景,我发现以下代码有点过于健壮,包含多条语句;我想知道如何简化代码,并在一条语句中完成所有操作。 Student是超类,Friend和Schedule是聚合到超类ArrayList公共成员中的子类(这些不是嵌套类)。这是我当前的代码: 我想知道我是否可以做这样的事情,在一个语句中声明/实例化超类和子类;这可能吗?
问题内容: 我正在使用泛型编写某些东西,令我惊讶的是,我发现这行不通: 那我不能实例化泛型吗?没有任何方法可以做到这一点吗? 问题答案: 是的,这真是令人讨厌。 我使用的解决方法是强制客户端在构造新类时传递类-即 然后您可以使用。