tra*_*ega 2 java instanceof comparison-operators
是否有一个可以与instanceof运算符一起使用的有效类Type变量?例如:
String s = "abc";
Class<?> classType = String.class;
if (s instanceof classType) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
作为替代方案:
if (s.getClass() == classType) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
是否会有任何性能优势?
Jef*_*rey 14
你正在做的事情实际上并不相同.考虑子类会发生什么(我知道你不能继承子类String,所以在这种String情况下无关紧要).
class A {}
class B extends A {}
B b = new B();
b instanceof A // true
b.getClass() == A.class // false
Run Code Online (Sandbox Code Playgroud)
如果您有一个对象,并且想要知道它是否是某个类型的实例并且您拥有该Class对象,则可以使用该Class#isInstance方法.
在任何一种情况下,我都希望性能差异微不足道.
| 归档时间: |
|
| 查看次数: |
23579 次 |
| 最近记录: |