汎用インターフェース(Pack<A extends PackAnimal>
)には、List<A>
を戻すメソッドが1つあります。今日、私はなぜそれがあるリストを返すメソッドを持つ汎用インターフェース
interface PackAnimal {
}
class Buffalo implements PackAnimal {
}
interface LonelyAnimal {
}
class Puma implements LonelyAnimal {
}
interface Pack<A extends PackAnimal> {
List<A> getMembers();
}
class PumaPack implements Pack {
@Override
public List<Puma> getMembers() {
return null;
}
}
もし私がクラスをspeficyすることを忘れインターフェース(class XXX implements PackAnimal
)を実装するクラスでは、戻り値の型は、実行時にコンパイル時にチェックし、失敗していないことを発見しましたか?宣言に何らかのタイプの間違いがあった場合、コンパイルが失敗することはどうすれば強制できますか?
素敵な、生の種類を無効にするフラグhttp://stackoverflow.com/questions/697879/javac-flag-to-disallow-raw-types – Narkha