Java 有人能解释资产为何失败吗?
可能重复:Java 有人能解释资产为何失败吗?,java,selenium,Java,Selenium,可能重复: 我不熟悉Selenium和Java 我尝试了下面的方法来比较姓氏的字段值和我提供的值 String lastname=selenium.getValue("//*[@id='lastName']"); System.out.println(lastname); assertTrue (lastname == "xxx"); 它是不断失败的 只是在Eclipse的帮助下尝试更改最后一行(只是尝试和错误) 它工作得很好。。。为什么在第一种情况下失败?==不允许比较字符串?简短回答:
我不熟悉Selenium和Java 我尝试了下面的方法来比较姓氏的字段值和我提供的值
String lastname=selenium.getValue("//*[@id='lastName']");
System.out.println(lastname);
assertTrue (lastname == "xxx");
它是不断失败的
只是在Eclipse的帮助下尝试更改最后一行(只是尝试和错误)
它工作得很好。。。为什么在第一种情况下失败?==不允许比较字符串?简短回答:
=
检查相同的对象。equals
检查相同的值
equals
函数中的更多信息检查lastname
的实际内容=
运算符检查对对象的引用是否相等。您必须使用equals()将字符串与Java进行比较,正如您所猜测的。当您使用=
与字符串进行比较时,您实际上是在比较指针(或真正的引用相等)。换句话说,您正在测试两个对象是否相同,而不是对象的内容。为了比较字符串的相等性,我们使用equals()方法。java中有两种比较方法。一个是“==”运算符,另一个是“equals()”方法。“==”比较字符串对象的引用值,而equals()方法存在于java.lang.object类中。此方法比较字符串对象的内容 更多信息:这必须是Java中最常见的问题。
assertTrue("lastname.equals("xxx"));