我的语法如下:
public static String getName() {
return (fullName= firstName + " " + lastName);
}
它会抛出错误。但是,如果我使用
public static String getName() {
fullName=firstName + " " + lastName;
return fullName;
}
问题得到解决。
问题:
为什么fullName
的赋值不按#1工作?为什么我在字段fullName
上出现错误,因为fullName
如果我使用#1语法?
答案 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());
}
}
但从逻辑上讲,有两个错误:
fullName = fullName
将字段分配给自身没有任何意义
更改名为getName()
的方法中的值会给开发人员带来很多困惑。有关详细信息,请参阅Side effect function
答案 2 :(得分:0)
从可读性的角度出发,为您的未来和您的良好习惯。 你应该这样写:
public static String getName() {
return firstName + " " + lastName);
}