因此,我创建了自己的名为Guidelines的类,当用户按下某个按钮时,它将包含一些要在新窗口中显示的文本。

public class Guidelines {

    public Guidelines(String buttonName){
        guidelines(buttonName);
    }

    private String guidelines(String buttonName){
        String content = "";
        if (buttonName.equals("norman"))
            content = "Norman is the man!";
        if (buttonName.equals("nielsen"))
            content = "Nielsen is the best!";
        if (buttonName.equals("fitt"))
            content = "Fitt rocks!";
        return content;
    }
}


但是当我在我的主班级中这样称呼这个班级时:

Guidelines content = new Guidelines("norman");
JTextArea textArea = new JTextArea(String.valueOf(content));


我没有得到像"Norman is the man!"这样的字符串,但是却得到了像uv.Guidelines@12ce0bf这样的字符串。我猜在将对象转换为字符串时存在问题。我如何获得字符串?

最佳答案

根据您的代码,您正在执行的操作是定义一个带有构造函数名称Guidelines的类,该构造函数名称为一个字符串值,并且具有一个名为guidelines的方法,该方法返回一个String并接收一个字符串值。

现在,当您创建对象/实例时

Guidelines content = new Guidelines("norman");


它会为您创建一个Guidelines对象,并通过传递norman来调用方法guidelines(String buttonName)。现在正在调用构造函数,并且构造函数正在调用方法,但是构造函数未返回任何内容。所以每当你写作

Guidelines content = new Guidelines("norman");


reference变量在我们的案例内容中包含对对象的引用。如果打印参考变量,则在该特定对象为hashCode的情况下将看到该uv.Guidelines@12ce0bf

您需要做的就是像这样执行对方法guidelines(String buttonName)的调用,并且要进行调用,您必须将方法声明为public。

String buttonName = content.guidelines("norman);


然后传递变量buttonName

JTextArea textArea = new JTextArea(buttonName);


或者你可以直接打电话

JTextArea textArea = new JTextArea(String.valueOf(content.guidelines("norman")));

09-15 21:47