繁体   English   中英

原始数据类型和类数据类型的equals()方法和'=='运算符

[英]equals() method and '==' operator for primitive data types and class data types

我已经知道equals()方法(或任何其他类似的方法)比较对象之间给定类型的值,并且==运算符比较表达式中声明的两个引用是否相同,但是我在比较每个时都有一个问题来自同一个类的两个对象的字段,代码如下:

//fields are String name, String surname, int age and boolean gender belonging to the Person class.
public boolean isYou(Person person)
{
    return 
    getName().compareToIgnoreCase(person.getName()) == 0 &&
    getSurname().compareToIgnoreCase(person.getSurname()) == 0 &&
    getAge() == person.getAge() &&
    getGender() == person.getGender();

考虑到这个实现,使用方法比较类数据类型(如String)是必须的,并且在处理原始数据类型时可以使用==运算符是正确的,即使对象比较是完成而不是像getAge() == 2这样的简单比较?

是否正确使用方法来比较类数据类型(如String)是正确的

是。

并且在处理原始数据类型时可以使用==运算符

是。

即使进行了对象比较而不是像getAge()== 2这样的简单比较?

不,这是不正确的。 原始类型不是对象,因此没有equals()方法可以调用,因此您唯一的选择是通过==比较值,对于始终产生所需结果的基本类型。

这是绝对正确的,处理原始类型,如int双字节char,等等,你必须使用==比较它们,因为它们不是对象,所以它们不实现equals()。 所以澄清一下,其余的都没问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM