对变量名的赋值无效

时间:2014-12-10 03:41:49

标签: java

我的语法如下:

1

public static String getName() { 
    return (fullName= firstName + " " + lastName);
}

它会抛出错误。但是,如果我使用

2

public static String getName() { 
   fullName=firstName + " " + lastName;
   return fullName; 
}

问题得到解决。

问题: 为什么fullName的赋值不按#1工作?为什么我在字段fullName上出现错误,因为fullName如果我使用#1语法?

3 个答案:

答案 0 :(得分:1)

return (fullName = fullName=firstName + " " + lastName);

您应该分开此代码。首先为全名指定新值(只有1个赋值运算符=),然后返回全名。

另一种方式就是说:

return firstName + " " + lastName;

PS:是的你是对的,分配表达式将先运行,然后返回全名的新值。

答案 1 :(得分:0)

这对我有用。有使用的例子。

public class Test {

    private static String fullName;
    private static String firstName = "FirstName";
    private static String lastName = "LastName";

    public static String getName() {
        return (fullName = fullName=firstName + " " + lastName);
    }


    public static void main(String[] args) {
        System.out.println(getName());
    }
}

但从逻辑上讲,有两个错误:

  1. fullName = fullName将字段分配给自身没有任何意义

  2. 更改名为getName()的方法中的值会给开发人员带来很多困惑。有关详细信息,请参阅Side effect function

答案 2 :(得分:0)

从可读性的角度出发,为您的未来和您的良好习惯。 你应该这样写:

public static String getName() { 
    return firstName + " " + lastName);
}