我必须将一个Class对象与一个预定义的类列表进行比较.
使用安全==还是应该使用equals?
if (klass == KlassA.class) {
} else if (klass == KlassB.class) {
} else if (klass == KlassC.class) {
} else {
}
Run Code Online (Sandbox Code Playgroud)
注意:我不能使用instanceof,我没有对象,我只是拥有该Class对象.我(错误)在这种情况下使用它就像一个枚举!
rob*_*nst 28
java.lang.Class 不会覆盖equals方法java.lang.Object,实现方式如下:
public boolean equals(Object obj) {
return (this == obj);
}
Run Code Online (Sandbox Code Playgroud)
所以a == b是相同的a.equals(b)(除非a是null).
我不确定这是否适合您的具体情况,但您可以尝试Class.isAssignableFrom(Class)。
KlassA.class.isAssignableFrom(klass)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25184 次 |
| 最近记录: |