当前位置: 首页 > 面试题库 >

Java等于一个类。==与.equals相同

洪子晋
2023-03-14
问题内容

我们可以==Class变量进行equals运算而不是期望相同的结果吗?

例如:

Class clazz = xyz;

情况A:

if(clazz == Date.class) {
// do something
}

情况B:

if(Date.class.equals(clazz)) {
// do something
}

案例A和案例B在功能上是否相同?


问题答案:

类是最终的,因此不能覆盖其equals()。它的equals()方法是从Object继承的,该Object读取

public boolean equals(Object obj) {
    return (this == obj);
}

所以是的,对于类或任何不重写的类型,它们是相同的 equals(Object)

为了回答您的第二个问题,每个ClassLoader只能加载一个类一次,并且对于给定的完全限定名称,它将始终为您提供相同的Class。



 类似资料:
  • 问题内容: 比较Java中的数组时,以下2条语句之间是否有区别? 如果是这样,它们是什么? 问题答案: 与相同,即是同一数组。正如指出的那样,这不是大多数人期望的。 比较数组的内容。 同样,可能不是很有用,你需要使用。

  • 我正在制作一个应用程序,如果用户已经登录,我希望应用程序自动从文本文件登录。目前,在文本文件中,我有与数据库条目匹配的“alex|ppp”。以下方法首先调用 我已经仔细检查了user和Pass的值,它们是“alex”和“ppp”,这是预期的。下一个初始文件被调用,这是相关代码: 一旦我调用db.tryLogin()就会出现问题,它看起来像这样 我已经检查过了,dbPass从数据库返回的“ppp”与

  • 本文向大家介绍Java Float类equals()方法与示例,包括了Java Float类equals()方法与示例的使用技巧和注意事项,需要的朋友参考一下 Float类方法 equals()方法在java.lang包中可用。 equals()方法用于检查该对象与给定对象的相等性或不相等性,换句话说,可以说该方法用于比较两个对象。 equals()方法是一种非静态方法,只能通过类对象访问,如果尝

  • 假设我有一个没有equals()方法的类,它没有源代码。我想在该类的两个实例上声明相等。 我可以做多个断言: 我不喜欢这个解决方案,因为如果早期断言失败,我无法获得完全的平等性。 我可以自己手动比较并跟踪结果: 这给了我一幅完整的平等图,但很笨拙(我甚至没有考虑可能出现的空问题)。第三个选项是使用Comparator,但compareTo()不会告诉我哪些字段未通过相等。 有没有更好的实践可以从对

  • 我有1D临时arraylist和2D原始arraylist,我在循环期间更新了临时arraylist,在循环结束时,我需要使原始arraylist与临时arraylist的内容相等,如下所示: 我知道有些方法

  • 相等性 当你要实现相等性的时候记住这个约定:你需要同时实现isEqual 和 hash方法。如果两个对象是被isEqual认为相等的,它们的 hash 方法需要返回一样的值。但是如果 hash 返回一样的值,并不能确保他们相等。 这个约定是因为当被存储在集合(如 NSDictionary 和 NSSet 在底层使用 hash 表数据的数据结构)的时候,如何查找这些对象。 @implementati