Java - 如何将对象从我自己的 class 转换为主 class 中的字符串?
Java - How can I convert an object from my own class to a string in the main class?
所以,我制作了自己的 class 指南,其中包含一些我想在新 window 中显示的文本,当用户按下某个按钮时。
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;
}
}
但是当我在我的 class 中这样称呼这个 class 时:
Guidelines content = new Guidelines("norman");
JTextArea textArea = new JTextArea(String.valueOf(content));
我没有得到像 "Norman is the man!"
这样的字符串,而是像 uv.Guidelines@12ce0bf
这样的字符串。我想在将对象转换为字符串时存在问题。我怎样才能得到字符串?
做 String content 一个 class 字段,定义一个方法 getContent 并做:
JTextArea textArea = new JTextArea(Guidelines.getContent());
示例:
public class Guidelines {
String content;
public Guidelines(String buttonName){
guidelines(buttonName);
}
private String guidelines(String buttonName){
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;
}
public String getContent(){
return content;
}
}
然后
Guidelines content = new Guidelines("norman");
JTextArea textArea = new JTextArea(content.getContent());
你可以覆盖 toString 方法,
public class Guidelines {
private final String content;
public Guidelines(String buttonName){
content = 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;
}
@Override
public String toString() {
return content;
}
}
然后,您可以调用 toString 方法来获取内容的值
Guidelines content = new Guidelines("norman");
TextArea textArea = new JTextArea(content.toString());
根据您的代码,您正在做的是定义一个 class,其构造函数名称为 Guidelines
,它采用一个字符串值,并且您有一个名为 guidelines
的方法returns 一个字符串并接受一个字符串值。
现在当您创建 object/instance
Guidelines content = new Guidelines("norman");
它为您创建一个 Guidelines 对象并通过传递 norman 来调用方法 guidelines(String buttonName)
。现在正在调用构造函数,构造函数正在调用方法,但构造函数没有返回任何东西。所以每当你写
Guidelines content = new Guidelines("norman");
引用变量保存了对我们案例内容中对象的引用。如果你打印一个引用变量,你会看到那个特定对象的 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")));
所以,我制作了自己的 class 指南,其中包含一些我想在新 window 中显示的文本,当用户按下某个按钮时。
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;
}
}
但是当我在我的 class 中这样称呼这个 class 时:
Guidelines content = new Guidelines("norman");
JTextArea textArea = new JTextArea(String.valueOf(content));
我没有得到像 "Norman is the man!"
这样的字符串,而是像 uv.Guidelines@12ce0bf
这样的字符串。我想在将对象转换为字符串时存在问题。我怎样才能得到字符串?
做 String content 一个 class 字段,定义一个方法 getContent 并做:
JTextArea textArea = new JTextArea(Guidelines.getContent());
示例:
public class Guidelines {
String content;
public Guidelines(String buttonName){
guidelines(buttonName);
}
private String guidelines(String buttonName){
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;
}
public String getContent(){
return content;
}
}
然后
Guidelines content = new Guidelines("norman");
JTextArea textArea = new JTextArea(content.getContent());
你可以覆盖 toString 方法,
public class Guidelines {
private final String content;
public Guidelines(String buttonName){
content = 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;
}
@Override
public String toString() {
return content;
}
}
然后,您可以调用 toString 方法来获取内容的值
Guidelines content = new Guidelines("norman");
TextArea textArea = new JTextArea(content.toString());
根据您的代码,您正在做的是定义一个 class,其构造函数名称为 Guidelines
,它采用一个字符串值,并且您有一个名为 guidelines
的方法returns 一个字符串并接受一个字符串值。
现在当您创建 object/instance
Guidelines content = new Guidelines("norman");
它为您创建一个 Guidelines 对象并通过传递 norman 来调用方法 guidelines(String buttonName)
。现在正在调用构造函数,构造函数正在调用方法,但构造函数没有返回任何东西。所以每当你写
Guidelines content = new Guidelines("norman");
引用变量保存了对我们案例内容中对象的引用。如果你打印一个引用变量,你会看到那个特定对象的 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")));