equals()方法?

时间:2010-01-12 04:15:50

标签: java

不应该将对象传递给相等的人吗?

    String hej = pets.getBark();
    if(hej.equals("woff"))

为什么你能传递字符串woff?

5 个答案:

答案 0 :(得分:6)

如果我正确理解了您的问题,您会想知道为什么可以将文字字符串值传递给接受类型为String的参数的方法。这是因为字符串文字是String实例的简写(新实例或之前创建的实例已通过实习保留):

  

String类代表角色   字符串。 Java中的所有字符串文字   程序,例如“abc”,是   实现为此的实例   类。

答案 1 :(得分:2)

带引号的字符串是一个对象。它是String类的一个实例。

答案 2 :(得分:2)

在引擎盖下,字符串文字(引号内的文本)自动被String实例替换。 (字符串文字是new String

的简写

这就是为什么这段代码有效:String hello = "hello";

所以,

 String hej = pets.getBark();
 if( hej.equals( new String("woff") ) ) {}

与您提供的代码相同。

答案 3 :(得分:2)

您可以传递java.lang.Stringjava.lang.Object的子类型,因为Liskov substitution principle这样说。

答案 4 :(得分:1)

文字字符串仍为String类型。