将instanced对象转换为字符串

时间:2017-07-02 20:06:46

标签: java string object

我初始化一个Password对象,我在将字符串作为字符串用于以后的目的时遇到了麻烦,比如计算字符串中的字母数量。我知道我只使用方法 String.valueOf .toString 获取对象的文本表示。我该怎么做我的对象传递并获得"你好"字符串我用?

初始化它
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());
}

}

2 个答案:

答案 0 :(得分:0)

使用字段。

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实例到上述示例中的字段. You named it "Password", but it could also be MyText or MySecret . So you need to tell how a密码instance can be displayed as text. In your case, you'll need to just use the text`字段。

你一定要阅读docs about classes。我想你错过了一些基本的东西。

注意:由于安全隐患,您也不应该将密码存储到字符串中,但这是另一个故事,超出了您的问题范围。

答案 1 :(得分:0)

您的实际getText()方法没有意义:

public String getText(){
    String string = String.valueOf(this);
    return string;
}

您尝试从String实例的toString()方法重新创建Password
它实际上没有必要(无用的计算)并且它是笨拙的,因为toString()不是为了提供功能数据而设计的。

为达到目标,这是非常基本的。

将文本存储在Password实例的字段中:

public Password (String text) {
  this.text = text;
}

并提供text字段的视图。

您可以这样替换getText()

public String getText(){    
    return text;
}