子クラスが親の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





てか、変なクラス構成にすんな。

ごめん。