不应该将对象传递给相等的人吗?
String hej = pets.getBark();
if(hej.equals("woff"))
为什么你能传递字符串woff?
答案 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.String
,java.lang.Object
的子类型,因为Liskov substitution principle这样说。
答案 4 :(得分:1)
文字字符串仍为String类型。