Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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类的2个对象_Java_String_Class_Object - Fatal编程技术网

比较来自不同java类的2个对象

比较来自不同java类的2个对象,java,string,class,object,Java,String,Class,Object,可以比较两个不同类中的两个对象吗 假设我有一个向量,它将类A中的所有对象相加。我想将一些字符串与向量的元素进行比较 例如: if(string.equals(vector.get(i))) 这可能吗?是的,您可以调用equals()。但是,如果参数属于不同的类(可能不是子类),则SomeClass.equals()的任何合理实现都将返回false 如果string是java.lang.string的实例,则此行为为: 结果是true当且仅当参数不是null且是一个字符串对象表示与此对象相同的字

可以比较两个不同类中的两个对象吗

假设我有一个向量,它将类A中的所有对象相加。我想将一些字符串与向量的元素进行比较

例如:

if(string.equals(vector.get(i)))

这可能吗?

是的,您可以调用
equals()
。但是,如果参数属于不同的类(可能不是子类),则
SomeClass.equals()
的任何合理实现都将返回
false

如果
string
java.lang.string
的实例,则此行为为:

结果是
true
当且仅当参数不是
null
是一个
字符串
对象
表示与此对象相同的字符序列时


是的,您可以调用
equals()
。但是,如果参数属于不同的类(可能不是子类),则
SomeClass.equals()
的任何合理实现都将返回
false

如果
string
java.lang.string
的实例,则此行为为:

结果是
true
当且仅当参数不是
null
是一个
字符串
对象
表示与此对象相同的字符序列时


您的对象至少在类对象中,因此(至少部分)在同一类中。

您的对象至少在类对象中,因此(至少部分)在同一类中。

对象的Equals方法可以接受任何其他对象。然而,当比较一个苹果和一个橘子时,它将取决于实现是否返回true。一个对象的方法可以接受任何其他对象。但是,当比较苹果和橙色时,将由实现决定不返回true。如果列表元素的类型不是String,那么它将始终返回false。从方法
等于的
字符串
文档中:

将此字符串与指定的对象进行比较。当且仅当参数不为null并且是表示与此对象相同的字符序列的字符串对象时,结果才为true


对于方法equals,这通常是正确的-只有在比较对象属于同一类或前者的子类时,它才会或应该返回true。

如果列表元素的类型不是String,它将始终返回false。从方法
等于的
字符串
文档中:

将此字符串与指定的对象进行比较。当且仅当参数不为null并且是表示与此对象相同的字符序列的字符串对象时,结果才为true


对于方法equals,这通常是正确的-只有在比较对象属于同一类或前者的子类的情况下,它才会或应该返回true

public class MyClass {
    public boolean equals(Object o) {
        if(o instanceof SomeUnrelatedClass) return true;
        return false;
    }
}

但这是不可取的,至少我会尽量避免。这会使处理
MyClass
对象有点奇怪,例如将它们放入基于散列的集合中

public class MyClass {
    public boolean equals(Object o) {
        if(o instanceof SomeUnrelatedClass) return true;
        return false;
    }
}

但这是不可取的,至少我会尽量避免。这会使处理
MyClass
对象变得有点奇怪,例如将它们放入基于哈希的集合中。

是的,这是可能的,您是否有一个更具体的问题,这并不像您预期的那样工作?您能更具体地说明您想要比较什么吗?是的,这是可能的,您是否有一个更具体的问题,这不是您所期望的工作?您是否可以更具体,以便比较什么?是的,我有一个不同的类,它返回false,如何修复it@KarishKarish:定义“fix”。好的,我有类A和类B。类A有一个接受字符串的构造函数。类B包含向量,该向量将类A中的所有元素相加。当我将vector和字符串get falseyes进行比较时,我有一个不同的类,它返回false,如何修复it@KarishKarish:定义“fix”。好的,我有类A和类B。类A有一个接受字符串的构造函数。类B包含向量,该向量将类A中的所有元素相加。当我将向量与字符串进行比较时,会遇到一个问题,即我使用了另一个类,当我比较它们时,它会给出false,这是预期会发生的。但是我猜您需要将字符串与另一个类中的某个字段进行比较。那么,为什么不在另一个类的字段上调用equals呢?问题是,我使用了另一个类,当我比较它们时,它给了我false。好吧,这是预期会发生的。但是我猜您需要将字符串与另一个类中的某个字段进行比较。那你为什么不在另一个类的字段上调用equals呢?