[英]How can I detect if a Java class is called by its own main() or from another class?
[英]Java - How can I convert an object from my own class to a string in the main class?
因此,我制作了自己的名为“指导方针”的类,当用户按下某个按钮时,该类将包含一些要在新窗口中显示的文本。
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!"
这样的字符串"Norman is the man!"
,但类似uv.Guidelines@12ce0bf
。 我想在将对象转换为字符串时存在问题。 我如何获得字符串?
将String内容设为类字段,定义方法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());
根据您的代码,您正在执行的操作是定义一个带有构造函数名称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")));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.