Java将类视为包?
目录树:Java将类视为包?,java,Java,目录树: App |- src |- package S |- public class main.java |- public class U.java |- package C U.java树: public class U |- public static class I |- public static func test |- public static class O
App
|- src
|- package S
|- public class main.java
|- public class U.java
|- package C
U.java树:
public class U
|- public static class I
|- public static func test
|- public static class O
|- public static func t
当我尝试访问main.java
上的U.I.test()
时。Javac给出了以下错误:
main.java:30:错误:包U不存在
java--版本:
openjdk 11.0.9.1 2020-11-04 openjdk运行时环境(构建11.0.9.1+1-Ubuntu-0ubuntu1.20.04)openjdk 64位服务器虚拟机(构建11.0.9.1+1-Ubuntu-0ubuntu1.20.04,混合模式,共享)
有什么想法吗?您可以尝试下面的代码
package S;
public class main {
public static void main(String args[]){
U outer=new U();
U.I innerI=outer.new I();
innerI.test();
}
}
注意:您不能直接访问内部类方法。如果您想这样做,那么必须使内部类及其方法保持静态,然后从main方法调用,如下所示
U.I.test();
你能展示一些代码吗?@Sweeper我编辑了这个问题,以便你更好地理解我需要一组步骤,我可以执行这些步骤来重现错误“U包不存在”。现在,你给了我文件夹结构,但不是那些文件中的内容。main.java和U.java中有什么?@Sweeper
main.java
只有main函数U.java
有上面的树,我尝试访问U.I.test()
。其中,I
是一个内部类,test
是main.java中class I
中的一个函数,而不是描述文件的内容,您应该使用这些文件包含的代码来回答问题。Eclipse IDE给了我:U.II类型的非法封闭实例规范已编辑了答案并为mainI类提供了完整的代码编辑了问题