Java 将实例化对象转换为字符串
我初始化了一个Password对象,但在以后使用同一个对象作为字符串时遇到了问题,比如计算字符串中的字母数量。我知道我只使用String.valueOf和.toString方法获取对象的文本表示。如何获取my object传递并获取初始化它时使用的“hello”字符串Java 将实例化对象转换为字符串,java,string,object,Java,String,Object,我初始化了一个Password对象,但在以后使用同一个对象作为字符串时遇到了问题,比如计算字符串中的字母数量。我知道我只使用String.valueOf和.toString方法获取对象的文本表示。如何获取my object传递并获取初始化它时使用的“hello”字符串 public class Password { public Password (String text) { } public String getText(){ String string = String.val
public class Password {
public Password (String text) {
}
public String getText(){
String string = String.valueOf(this);
return string;
}
public static void main (String[] args) {
Password pass = new Password ("hello");
System.out.println(pass.toString());
}
}使用字段
public class Password {
private String text; // This is a member (field) It belongs to each
// Password instance you create.
public Password(String value) {
this.text = value; // Copy the reference to the text to the field
// 'text'
}
}
String.valueOf(this)
的问题在于this
是一个Password
实例,valueOf()
方法完全不知道如何将Password
实例转换为字段。您将其命名为“密码”,但也可以是
MyText或
MySecret。因此,您需要说明如何将
Password实例显示为文本。在您的情况下,只需使用上述示例中的
text`字段即可
你一定要读这本书。我觉得你缺少一些基本的东西
注意:由于存在安全隐患,您也不应该将密码存储到字符串中,但这完全是另一回事,超出了您的问题范围。您实际的
getText()
方法没有意义:
public String getText(){
String string = String.valueOf(this);
return string;
}
您尝试从Password
实例的toString()
方法重新创建字符串。
这实际上是不必要的(无用的计算),而且它很笨拙,因为toString()
不是为提供功能数据而设计的。
要达到你的目标,这是非常基本的。
将文本存储在密码
实例的字段中:
public Password (String text) {
this.text = text;
}
并提供文本
字段的视图
您可以通过以下方式替换getText()
:
public String getText(){
return text;
}
重写toString()
方法并返回所需的值。