![](/img/trans.png)
[英]Is there a way to reference the Java class for a Kotlin top-level function?
[英]Accessing non top-level class without a top level class in Java
我有一個Java文件TestThis.java
,如下所示:
class A
{
public void foo()
{
System.out.println("Executing foo");
}
}
class B
{
public void bar()
{
System.out.println("Executing bar");
}
}
上面的代碼文件編譯正常,沒有任何警告/錯誤。 沒有任何其他外部類的頂級類,是否可以通過任何方式訪問A
類或B
類?
如果不是,那為什么Java甚至允許在沒有頂級類的情況下編譯此類文件?
和往常一樣(例如,從Test.java訪問):
public class Test {
public static void main(String... args) {
A a = new A();
a.foo();
B b = new B();
b.bar();
}
}
這里的規則是,源文件中不能有多個公共類。 如果您有一個文件名,則文件名必須與此公共類名匹配。 否則(根據您的情況),您可以根據需要命名文件。 其他非公共類將對程序包可見,您可以照常訪問它們。
同一包中的任何其他類都可以訪問A和B; 在這種情況下,由於沒有源文件的package語句,因此使用了空包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.