は、あなたが「I」という名前の2つのインタフェースがあります私のプロジェクトの中に気づくでしょう、私の問題Javaインタフェース「エイリアス」
#a.java
package a;
public interface I {
//...
}
#b.java
package b;
public interface I {
//... (different stuff from a.I)
}
の簡易版が含まれている以下の2つのJavaファイルを考えてみましょう。これは変更できません。 私は、1つのクラスの中で両方の型を使用する必要がある状況にあります。もちろん、それぞれの型をa.Iとb.Iとして参照できますが、読みやすさを維持する以外の方法では避けようとしています。
は、私は私がBとを使用することにより、Iのインタフェースを使用してみましょうことができ、この
interface B extends b.I {
}
このような何かをしたい、と私はインポートすることとしてa.I。問題は、これが機能しないということです。この具体的な例を使用してみましょう。
interface MyList extends List<String> {
}
MyList l = new ArrayList<String>();
これは型エラーを引き起こします。 MyListがListを拡張することをJavaが「認識」していないのはなぜですか?
また、私は上記の例では、鋳造しようとしましたが、それはClassCastExceptionが
思考を生成しますか?