Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以将java.lang.Class对象与java中的==进行比较吗?_Java - Fatal编程技术网

可以将java.lang.Class对象与java中的==进行比较吗?

可以将java.lang.Class对象与java中的==进行比较吗?,java,Java,可能重复: 如果我有一门课,比如 Class<? extends MyObject> aClass = ...; 或者我必须做什么 if (aClass.equals(MySubObject.class)) { ... } 此外,除了知道答案之外,我还想知道一个参考,即它的定义 如果可能的话,我更喜欢使用==,因为我发现它可读性更强,速度更快。(显然,它的可读性并没有那么高,速度也没有那么快,但如果有更简单的解决方案,为什么还要使用更复杂的解决方案呢。)您可以使用==,但您什么

可能重复:

如果我有一门课,比如

Class<? extends MyObject> aClass = ...;
或者我必须做什么

if (aClass.equals(MySubObject.class)) { ... }
此外,除了知道答案之外,我还想知道一个参考,即它的定义


如果可能的话,我更喜欢使用
==
,因为我发现它可读性更强,速度更快。(显然,它的可读性并没有那么高,速度也没有那么快,但如果有更简单的解决方案,为什么还要使用更复杂的解决方案呢。)

您可以使用
==
,但您什么也得不到,因为这正是
Class.equals()
所做的

类未定义equals方法,因此它从对象继承。您可以阅读源代码以查看此信息


我尽可能使用
等于
,因为这样我就不需要考虑它了。当我阅读代码(包括我的代码)时,我仍然不需要问自己,对于这个类,
==
是否与
相等。

你可以将类与
=
进行比较,对于
,这与
相等是一样的,但您的示例表明,您想知道一个类是否与另一个类存在“is-a”关系。两个等级只有在相同等级时才相等,而且显然
Vehicle.class!=汽车类


如果您想知道一辆
汽车是否是一辆
汽车
,请使用

另一个“是”,您会得到一些信息:
=
是空安全的。@yankee true,在这种情况下您可以编写
MySubObject.class.equals(aClass)
if (aClass.equals(MySubObject.class)) { ... }