デザインに関する質問はさておき、現代のJVMで何がより高速に実行されますか?より速いもの:instanceofまたはisInstance?
foo instanceof Bar
または
Bar.class.isInstance(foo)
なぜ?
デザインに関する質問はさておき、現代のJVMで何がより高速に実行されますか?より速いもの:instanceofまたはisInstance?
foo instanceof Bar
または
Bar.class.isInstance(foo)
なぜ?
foo instanceof Bar
はもっと速くする必要があります。
あなたが持っているクラスをコンパイル時に明確でない場合は、Bar.class.isInstance(foo)
を使用できます。 JVMがクラスメソッドを呼び出し、実行時に決定した。このexsampleで
void test(Object o1, Object o2) {
o1.getClass().isInstance(o2);
}
:
は、以下の点を考慮します。 instanceof
ではこれはできません。
ですから、コンパイル時にクラスを知っていればあなたはinstanceof
#1。それは言語に組み込まれています。あなたはそれよりも良くなるつもりはありません。 –
速いことはほとんど決して重要ではありません。 – biziclop
@LouisWasserman私はより良くしようとしているわけではありません。 – artspb