私は同じ変数名を持つ2つのインターフェースを持っていますが、この変数名は2つのインターフェース名の1つと同じです。
例えばiは上記の二つのインターフェースを実装するクラスを有するJavaインターフェース変数のあいまい性
interface Parent1{
public static final String Parent1= "VALUE1"; // Variable Parent1 is same as interface name
}
interface Parent2{
public static final String Parent1= "VALUE2";
}
言えば、私はインターフェイス親1における可変親1にアクセスする必要がある場合、どのようにしてアクセスすることができます。
例えば、
class Child implements Parent1, Parent2{
void myCode(){
System.out.println(Parent1.Parent1); // Does not compile. Because Parent1(before dot) is considered as variable
System.out.println(Parent2.Parent1); // Does compile
}
}
私は変数名を知っているが、標準に従っていません。しかし、Javaがこのあいまいさをどのように克服しているかを理解したかった。
編集:
人々は(コメントで)作業していると言います。しかし、私は、実行時にそれが
/Child.java:9: error: reference to Parent1 is ambiguous
System.out.println(Parent1.Parent1); // Does not compile. Because Parent1(before dot) is considered as variable
^
both variable Parent1 in Parent1 and variable Parent1 in Parent2 match
/Child.java:9: error: cannot find symbol
System.out.println(Parent1.Parent1); // Does not compile. Because Parent1(before dot) is considered as variable
^
symbol: variable Parent1
location: variable Parent1 of type String
2 errors
私のためにうまくコンパイルします。 –
これは、問題に直面しているところで働いています。それは働いています – iamsankalp89
どのJavaのバージョンを使用していて、どのコンパイラですか?また...あなたは>> @<< JoeCを使っていますか? –