我需要知道如何从Object获取值。 例如:
public ConfirmDialog(String quest) {
int a = JOptionPane.showConfirmDialog(null,
quest,
"Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
}
当我返回此对象时,我没有得到整数。有人可以给我一个解释吗?谷歌没有帮助我......
Object b = new ConfirmDialog("Question?");
System.out.println(b);
答案 0 :(得分:2)
您正在尝试打印Object
而不是int a
。当您在System.out.println()
处传递对象时,默认情况下会调用.toString()
方法,该方法尝试给出对象的文本表示。你得到的是Object-Type
@
HexValue of the object hashcode
hense ConfimDialog@afe1bc5
现在你知道你需要打电话给int
以及为什么要打印这个东西,还有第二个问题。您在构造函数中创建并初始化变量int a
,这意味着您无法在其他任何位置使用它。你需要做的就是在外面创建它并在每次调用构造函数时初始化它,如下所示:
int a;
public ConfirmDialog(String quest) {
int a = JOptionPane.showConfirmDialog(null,
quest,
"Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
}
现在您可以使用:System.out.println(new ConfirmDialog("Question?").a);
请注意:如果您像这样实例化ConfirmDialog()
:
Object b = new ConfirmDialog("Question?");
然后您需要将b
投射到ConfirmDialog
才能访问a
,如下所示:
System.out.println(((ConfirmDialog)b).get());
或者你可以这样做:
ConfirmDialog b = new ConfirmDialog("Question?");
,然后致电System.out.println(b.a);
通常,您应该拥有对变量的私有权限并使用getter方法。例如:
private int a;
public ConfirmDialog(String quest) {
int a = JOptionPane.showConfirmDialog(null,
quest,
"Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
}
public int getA(){
return a;
}
现在,如果您想访问a
,可以执行以下操作:
System.out.println(new ConfirmDialog("Question?").getA());
希望这有帮助。
答案 1 :(得分:1)
您正在构造函数中初始化局部变量。构造函数用于创建对象,并且它们不具有返回类型。请尝试以下代码: -
int a;
public ConfirmDialog(String quest) {
a = JOptionPane.showConfirmDialog(null,
quest,
"Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
}
public int get() {
return a;
}
Object b = new ConfirmDialog("Question?");
System.out.println(((ConfirmDialog)b).get());
答案 2 :(得分:1)
试试这个
int a;
public ConfirmDialog(String quest) {
a = JOptionPane.showConfirmDialog(null,
quest,
"Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
}
然后:
ConfirmDialog b = new ConfirmDialog("Question?");
System.out.println(b.a);
P.S。仅用于演示..原因...代码令人毛骨悚然......:)