如何从Object获取价值

时间:2014-08-29 17:56:26

标签: java object return-value

我需要知道如何从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);

3 个答案:

答案 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);

More information

P.S。仅用于演示..原因...代码令人毛骨悚然......:)

相关问题