5
私は次のコードで警告を得ている理由を私は理解していない:生タイプjava.lang.Class
未確認の警告が表示されるのはなぜですか?
のメンバーとしてisAssignableFrom(Class<?>)
に
public static boolean isAssignableFrom(Class clazz, Object o) {
return clazz.isAssignableFrom(o.getClass());
}
未確認コール私は
isInstance
を使用する場合(私が理解しているのと同じ結果が得られます)、私は警告を受け取りません:public static boolean isAssignableFrom(Class clazz, Object o) { return clazz.isInstance(o); }
のおかげのようなものに
を変更します!答えはそれを明らかにした。しかし、私は実行時に任意のオブジェクトでチェックできるように型パラメータを使用するのではなく、 'Object o'をそのまま残しておくほうがよいでしょうか? – Revolutionair
実際には、タイプ消去後、コードは実行時に同じです(私の例では暗黙のキャストがあります)。 –
「Parent」、「Child extends Parent」、「RandomClass」の3つのクラスがあるとします。型パラメータを使用すると、子が親から割り当て可能かどうかを確認できますが、RandomClass( 'isAssignableFrom(Parent.class、new RandomClass());)のためにそれを行うことはできません。 – Revolutionair