にオブジェクトoのクラスを比較するのは、私は次のクラスがあるとしましょう:Javaのジェネリック:<E>
public class Test<E> {
public boolean sameClassAs(Object o) {
// TODO help!
}
}
にはどうすればo
がE
と同じクラスであることを確認しますでしょうか?
Test<String> test = new Test<String>();
test.sameClassAs("a string"); // returns true;
test.sameClassAs(4); // returns false;
私はスーパークラスをオーバーライドすることだし、ので、私のメソッドのシグネチャを選択するために取得しないように私は(Object o)
からメソッドのシグネチャを変更することはできません。
また、私はむしろ、キャストをしようとし、それが失敗した場合に結果の例外をキャッチする道を行かないだろう。
。または、==を使用する特別な理由はありますか? – ordnungswidrig
これは同等です。 IMO ==は読むのが簡単です(ただし、読者は型について知っていなければなりません)。それはインライン化の前に部分的に高速です。さて、私がテストしたとは思わないものは、ヌル・クラジです。 –