子クラスが親のprotectedなclassにアクセス出来ず - packageの癖がよくわからん
これはコンパイルおk
Jum.java
package makimaki; public class Jum<T> { protected class RozenMaiden { }; };
BigJum.java
package non_makimaki; import makimaki.Jum; public class BigJum extends Jum<String> { public class Shinku extends Jum<String>.RozenMaiden { }; };
コンパイルで死亡
Jum.java
package makimaki; public class Jum<T> { protected class RozenMaiden { }; };
BigJum.java
package non_makimaki; import makimaki.Jum; public class BigJum extends Jum<BigJum.Shinku> { public class Shinku extends Jum<BigJum.Shinku>.RozenMaiden { }; };
コンパイル結果
BigJum.java:7: makimaki.Jum.RozenMaiden は makimaki.Jum で protected アクセスされます。 public class Shinku extends Jum.RozenMaiden ^ BigJum.java:5: 型パラメータ non_makimaki.BigJum.Shinku はその範囲を越えています。 public class BigJum extends Jum ^ エラー 2 個
むぅ…
しかし、興味深いことに package文 / import文 をコメントアウトすると、駄目な方もコンパイルが通ったりします。 Java はよく分からんなぁー…… orz
てか、変なクラス構成にすんな。
ごめん。