如果我有一个类如
Class<? extends MyObject> aClass = ...;
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
if (aClass == MySubObject.class) { ... }
Run Code Online (Sandbox Code Playgroud)
或者我必须这样做
if (aClass.equals(MySubObject.class)) { ... }
Run Code Online (Sandbox Code Playgroud)
此外,进一步知道答案,我很想知道一个参考,即这是什么定义.
==如果可能,我更喜欢使用,因为我发现它更具可读性和更快.(显然它不是那么可读,或者说更快,但是,如果有更简单的解决方案,为什么还要使用更复杂的解决方案.)
你可以使用,==但你什么也得不到,因为这正是Class.equals()它的作用.
类没有定义equals方法,所以它继承自Object.您可以阅读源代码以查看此内容.
我equals尽可能使用,因此我不需要考虑它.当我在阅读代码(包括我的代码)时,我仍然不需要问自己是否==与equals本课程相同或不同.
您可以比较班==,这是同样的事情equals的情况下Class,但你的例子表明,你想知道一个类是否有一个"是"的另一种关系.如果他们是同一个班级,那么两个班级只是平等的Vehicle.class != Car.class.
如果你想知道是否Car是a Vehicle,请使用Class#isAssignableFrom.
| 归档时间: |
|
| 查看次数: |
4824 次 |
| 最近记录: |