类方法的Java调用;“不兼容类型”;内部调用方法

类方法的Java调用;“不兼容类型”;内部调用方法,java,string,methods,boolean,Java,String,Methods,Boolean,/**来自我的主要课程和方法*/ String ans = null; System.out.println("Has your address changed?(y/n): " ); ans = input.next(); munozAccount.changeAddress(ans); /**来自由main方法调用的accounting类 消息说需要:找到布尔值:java.lang.String*/ public void changeAddress(String

/**来自我的主要课程和方法*/

String ans = null;
    System.out.println("Has your address changed?(y/n): " );
    ans = input.next();
    munozAccount.changeAddress(ans); 
/**来自由main方法调用的accounting类 消息说需要:找到布尔值:java.lang.String*/

public void changeAddress(String ans) {
    if (ans = "y") {
        cust.changeStreet();
        cust.changeCity();
        cust.changeState();
        cust.changeZip();
    } else {
        System.out.print("understood");
    }
}

您在此行中使用了赋值运算符
=

if (ans = "y") {
。。。结果类型是
字符串
,但是
if
语句需要
布尔值
,因此会出现错误

使用比较字符串值,这将返回一个
布尔值

if ("y".equals(ans)) {

“y”
首先要避免出现
NullPointerException
,如果您说
ans.equals(“y”)
并且
ans
null

您在这一行中使用了赋值运算符
=

if (ans = "y") {
。。。结果类型是
字符串
,但是
if
语句需要
布尔值
,因此会出现错误

使用比较字符串值,这将返回一个
布尔值

if ("y".equals(ans)) {

“y”
首先要避免一个
NullPointerException
,如果你说了
ans.equals(“y”)
ans
null

if(ans=“y”){/code>更改为
if(“y.equals(ans)){
if(ans=“y”)
这是非常错误的。@user2430297:因为
=
是赋值,而不是相等。
=
是相等的,尽管对于字符串,您实际上希望使用
equals
方法。您希望将某个值赋给变量ans=“y”。如果(ans.equals(“y”),您希望检查是否相等。需要布尔值,因为if语句正在检查条件是否为真。您使用了assignment@SLaks哦,不是很错误,对吗?对于从B派生的语言来说,新的语言是一个常见的错误。很多语言都很高兴地使用<代码> = <代码>,而不是B、C、C++、java、JavaScript、C、x、………nge
if(ans=“y”){
if(“y”.equals(ans)){
if(ans=“y”)
这是非常错误的。@user2430297:因为
=
是赋值,而不是相等。
=
是相等的,尽管对于字符串,您实际上想使用
equals
方法。您想给变量ans赋值吗=“y”。如果(ans.equals(“y”)),您要检查是否相等。需要布尔值,因为if语句正在检查条件是否为真。您使用了assignment@SLaks哦,不是很错误,对吗?对于从B派生的语言来说,新的语言是一个常见的错误。很多语言都很高兴地使用<代码> = <代码>,而不是B、C、C++、java、JavaScript、C**、D、……-Pro。非常值得一提的是,
=
是相等运算符,尽管您在这里当然不会使用它。可能值得一提的是,
=
是相等运算符,尽管您在这里当然不会使用它。