我有一个类:
package com.example;
public abstract class AbstractClass<S> {
//stuffs
}
然后是一个扩展它的类,并将泛型类型定义为它自己的内部类:
package com.example2;
import com.example.AbstractClass;
import com.example2.MyObject.MyObjectInnerClass;
public class MyObject extends AbstractClass<MyObjectInnerClass> {
//other stuffs
public static class MyObjectInnerClass {
}
}
如果com.example2.MyObject.MyObjectInnerClass
保留在同一个文件中,为什么需要导入?
答案 0 :(得分:3)
import com.example.AbstractClass;
import com.example2.MyObject.MyObjectInnerClass;
public class MyObject extends AbstractClass<MyObjectInnerClass> {
这是必需的,因为嵌套(非内部)类MyObjectInnerClass
仅存在{
内的不受限制的名称,在extends
中使用它之后{1}}子句。
更常规的写作方式是:
import com.example.AbstractClass;
public class MyObject extends AbstractClass<MyObject .MyObjectInnerClass> {
答案 1 :(得分:2)
让我们首先说 - 它不是内部类,它是一个嵌套类(内部类是一个非静态嵌套类)。
由于两个重要原因需要进口:
请注意,习惯上,而不是导入,写MyObject.MyObjectInnerClass
来强调两者之间的关系。