次のタイプのコードを生成するリスクのあるソースコードジェネレーターがあります(単なる例)。
public class Outer {
public static final Object Inner = new Object();
public static class Inner {
public static final Object Help = new Object();
}
public static void main(String[] args) {
System.out.println(Outer.Inner.Help);
// ^^^^ Cannot access Help
}
}
上記の例でInner
は、は。の内部であいまいに定義されていOuter
ます。Outer.Inner
ネストされたクラスと静的メンバーの両方にすることができます。javac
とEclipseコンパイラの両方が逆参照できないようOuter.Inner.Help
です。どうすればアクセスできますHelp
か?
上記のコードが生成されるため、名前の変更は(単純な)オプションではないことを忘れないでください。