声明类中的Java静态类导入

问题描述 投票:2回答:2

我有一个类似的课程:

 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保留在同一文件中,为什么需要导入?

java import
2个回答
4
投票
这是必需的,因为
嵌套(不是内部)类MyObjectInnerClass仅在{内部以不合格的名称存在,该名称在extends条款中使用后才出现。

更传统的书写方式是:

import com.example.AbstractClass; public class MyObject extends AbstractClass<MyObject .MyObjectInnerClass> {

2
投票
由于两个重要原因,需要导入:

它需要知道您的意思是什么类-您也可以将MyObjectInnerClass作为与MyObject相同的包中的类。对此类的无导入引用将恰好指向该类。

    这就是嵌套类的用途-将类按逻辑层次结构分组。
  • 注意,习惯上写而不是导入,写MyObject.MyObjectInnerClass来强调两者之间的关系。
  • © www.soinside.com 2019 - 2024. All rights reserved.