class test1 {
public static void main(String[] ar) {
String s1 = "abc";
s1.concat("ef");
System.out.println(s1);
}
}
实际输出:
abc
预期产出:
compile time error since concat() return type is string & it is not returned.
答案 0 :(得分:1)
String对象类型是不可变的。要获得连接值,您必须执行以下操作:
String s1 = "abc";
s1 = s1.concat("ef");
您不会收到编译时错误,因为没有必要将连接的返回值存储到变量中。
答案 1 :(得分:0)
调用方法时,不指定任何返回类型,可以指定要在其中存储方法声明指定的返回值的变量,如:
public String concat(String s){
return this.value + s;
}
调用方法时:
"foo".concat("bar"); //return "foobar"
将返回值为“foobar”的String
实例,但您不会将其归因于任何变量,即使在您的情况下,它也是允许的,因为它的结果没有意义连接将丢失。
现在,如果你试图解释你不能没有像这样的方法:
public String concat(String s){
this.value + s;
}
你是对的,你不能实现一个用返回类型声明但不返回任何东西的方法。它不会编译。