JAVA IF Else变量

时间:2015-05-15 02:37:06

标签: java

public void actionPerformed(ActionEvent arg0) {
    String employeeInput;
    String assetInput;

    String userInput = txtUserInput.getText();
    userInput = userInput.toLowerCase();

    if (userInput.startsWith("emp")){

        //String employeeInput = null;
        employeeInput = userInput.replaceAll("\\s","");
        txtUserInput.setText("");

        JOptionPane.showMessageDialog(frame, "The Scan was " );

    }else if (userInput.startsWith("u")){

        assetInput = userInput;
        assetInput.replaceAll("\\s","");
        txtUserInput.setText("");


        System.out.println("Employee ID is " + **employeeInput**); //asks for employeeInput to be declared.

        JOptionPane.showMessageDialog(frame, "The Scan was " + assetInput);

我希望填充并保存employeeInput,直到它被另一个employeeInput替换。我遇到的问题是在获取项目输入时,现在缺少employeeInput。这样做的方法是什么?

谢谢你的帮助

3 个答案:

答案 0 :(得分:1)

编译器不知道第一个条件已经满足。也不是。但是,你可以改变

String employeeInput; // <-- may not have been initialized

为默认值(可能甚至显式为null),此处为空String ""

String employeeInput = "";

答案 1 :(得分:1)

employeeInput是方法变量,因此每次退出方法时都会丢失对它的引用。

要尝试的显而易见的事情是将employeeInput转换为成员变量。只需在课堂顶部声明它。

最好还是将该值保存到数据库中。

答案 2 :(得分:0)

您的employeeInput变量看起来不像'缺失',或者在设置任何其他变量后可能会被删除。因此,最有可能的是,在定义变量时,您不会初始化变量。

尝试初始化它们,如

String employeeInput = ""; // or = null
String assetInput = ""; // or = null
String userInput = txtUserInput.getText().toLowerCase();

你的问题应该解决了。编译器也可能会对此发出警告。

您可能还想尝试删除此txtUserInput.setText("");行以测试问题。

编辑:

如果您在方法执行完毕后尝试访问此变量,那么它将被擦除,而不是将其放入您的方法中,在您的类中声明它,如public class Name{ public /*static*/ String employeeInput = ""; //or null }