Java 将实例化对象转换为字符串

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

我初始化了一个Password对象,但在以后使用同一个对象作为字符串时遇到了问题,比如计算字符串中的字母数量。我知道我只使用String.valueOf和.toString方法获取对象的文本表示。如何获取my object传递并获取初始化它时使用的“hello”字符串

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()
方法并返回所需的值。