这两种情况之间有什么区别?我具有2种不同模型的相同功能,这对我来说有点令人困惑!
package com.shop.shop.security;
public class AuthenticationBean {
private String message;
public AuthenticationBean(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public String toString() {
return String.format("HelloWorldBean [message=%s]", message);
}
}
答案 0 :(得分:0)
让我们从相似之处开始:它们都不编译,因为您无法获取本身未定义为&mut
的对象的可变引用(mut
)。
正确版本如下:
let mut my_str = String::from("ali");
let str2 = &mut my_str;
如果要获取对它的可变引用,则需要将 my_str
定义为可变的,以便使第一行明确。
在第二行,仅当您要修改引用mut
指向的内容时,str2
的前缀str2
才是必需的。只要您仅修改字符串的内容(而不更改要修改的字符串),就不需要它。