繁体   English   中英

Java访问另一个变量

[英]Java accessing another variable

package javaapplication1;

import javax.swing.JOptionPane;

public class Room{

    public static void main(String[] args) {
        dialog();
        System.out.println(sample);
    }

    public static String dialog() {
        String sample = JOptionPane.showInputDialog(null, "Insert Value", "Enter amount ", JOptionPane.QUESTION_MESSAGE); 
        if (sample.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Error!", "No Value Detected", JOptionPane.ERROR_MESSAGE);
            dialog();
        }
        System.out.println(sample+" from the bottom line.");
        return sample;
    }

大家好,

就从另一个object调用一个变量而言,目前我似乎正面临着Java问题。 在上面的代码之后,它是一个示例代码,它使用java swing提供用户输入。 我有2个对象,一个是main,另一个是dialog(),dialog已经声明了一个名为sample的变量,我想将其带到main,但是我似乎无法使用该变量,因为它总是会出错。

希望得到一些建议,谢谢!

在main方法中用作String sample = dialog(); 或全班

package javaapplication1;

import javax.swing.JOptionPane;

public class Room{

    public static void main(String[] args) {
        String sample = dialog();
        System.out.println(sample);
    }

    public static String dialog() {
        String sample = JOptionPane.showInputDialog(null, "Insert Value", "Enter amount ", JOptionPane.QUESTION_MESSAGE); 
        if (sample.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Error!", "No Value Detected", JOptionPane.ERROR_MESSAGE);
            dialog();
        }
        System.out.println(sample+" from the bottom line.");
        return sample;
    }

如果某个方法返回一个值,则可以在调用该方法时捕获它,如下所示:

public static void main(String[] args) {
    // Assign the return value of dialog() to a variable
    String sample = dialog();
    System.out.println(sample);
}

只是:

String sample = dialog();
System.out.println(sample);

您必须将返回值分配给变量。

采用,

System.out.println(dialog());

您正在从方法中返回一个字符串,因此可以使用System.out.println直接打印该值

如果要稍后在程序中使用该值,则可以将其存储在变量中。

方法中要注意的一件事是,您不能从主方法访问对话框方法的样本变量。

您正在做的另一个逻辑错误,

if (sample.isEmpty()) {
        JOptionPane.showMessageDialog(null, "Error!", "No Value Detected", JOptionPane.ERROR_MESSAGE);
        dialog();
}

如果样本变量的值为空,则在此处尝试再次调用dialog方法。 但是您尚未将返回值分配给sample变量。 发生这种情况时,您调用对话方法时,样本值仍然为空。 您可以通过以下方式进行更正:

if (sample.isEmpty()) {
        JOptionPane.showMessageDialog(null, "Error!", "No Value Detected", JOptionPane.ERROR_MESSAGE);
        sample = dialog();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM