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

时间:2012-12-04 20:39:26

标签: java string class object

是否可以比较来自2个不同类的2个对象。

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

示例:

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

这可能吗?

5 个答案:

答案 0 :(得分:3)

是的,您可以致电equals()。但是,如果参数属于不同的类(除了子类之外),SomeClass.equals()的任何合理实现都将返回false

如果stringjava.lang.String的实例,则此行为为specifically guaranteed

  

结果为true当且仅当参数不是nullString对象时,表示与此对象相同的字符序列

答案 1 :(得分:1)

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

答案 2 :(得分:0)

对象的Equals方法可以使用任何其他对象。但是,在将苹果与橙色

进行比较时,实施将不会返回true

答案 3 :(得分:0)

如果列表的元素的类型不是String,则它将始终返回false。来自方法String的{​​{1}}文档:

  
    

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

  

对于方法equals通常都是如此 - 它只会在比较对象属于同一类或前者的子类的情况下返回true。

答案 4 :(得分:0)

写一些类似的东西是完全有效的。

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

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