我发现了一个奇怪的编译限制,我无法解释,我不明白这个限制的原因.
实施例-1:
考虑这些类:
在package e1;:
public class C1 {
enum E1 { A, B, C }
public E1 x;
}
Run Code Online (Sandbox Code Playgroud)
在package e2;:
import e1.C1;
public class C2 {
public String test(C1 c1) {
return c1.x.toString(); // here compilation error
}
}
Run Code Online (Sandbox Code Playgroud)
这会导致以下编译错误:
错误:(5,20)java:
toString()injava.lang.Enum在无法访问的类或接口中定义
实施例-2:
考虑这些类:
在package i1;:
public interface I1 {
int someMethod();
}
public class C1 {
static class I2 implements I1 {
public int someMethod() {
return 1; …Run Code Online (Sandbox Code Playgroud)