-1

如何检查变量的类型。这样 :

伪代码:

do{
     VARIABLE =  JOptionPane.showInputDialog(null,"X = ");

}while(VARIABLE != Integer);

Set_X(VARIABLE);
4

3 回答 3

2

在这种情况下,您的VARIABLE变量将是String.

您可以尝试/捕获Integer.valueOf该变量以获取其Integer值。

如果NumberFormatException抛出 a ,则表示用户输入无法转换为Integer

例如(代码草案):

// initializing Integer interpretation
Integer input = null;
// infinite loop - breaks only once user has entered a valid integer-parseable value
while (true) {
    // trying to convert user input after showing option pane
    try {
        input = Integer.valueOf(JOptionPane.showInputDialog(null, "X = "));
        // breaking infinite loop
        break;
    }
    // conversion unsuccessful
    catch (NumberFormatException nfe) {
        // TODO handle any error message if you need to
    }
}
于 2013-11-02T13:48:32.253 回答
0

以下示例使用 Class 对象来打印对象的类名:

void printClassName(Object obj) {
         System.out.println("The class of " + obj +
                            " is " + obj.getClass().getName());
     }

因此,此代码将执行您需要的检查:

do{
    VARIABLE =  JOptionPane.showInputDialog(null,"X = ").getClass().getName();

    }while(!(VARIABLE.equals("java.lang.Integer"));
于 2013-11-02T13:54:02.150 回答
0

显然,你不能检查它的任何类型。但是,您可以尝试使用已知类型的解析器对其进行解析,如果解析成功,则将其转换为该类型并继续。

例如,整数解析辅助函数是Integer.parseInt(String). 不幸的是,它会在失败时引发异常(这将使您的代码在那时变得丑陋和缓慢),并且我不确定基础库中是否有替代品(例如,相当于 C#'s TryParse)。

于 2013-11-02T13:48:35.533 回答