如何检查变量的类型。这样 :
伪代码:
do{
VARIABLE = JOptionPane.showInputDialog(null,"X = ");
}while(VARIABLE != Integer);
Set_X(VARIABLE);
如何检查变量的类型。这样 :
伪代码:
do{
VARIABLE = JOptionPane.showInputDialog(null,"X = ");
}while(VARIABLE != Integer);
Set_X(VARIABLE);
在这种情况下,您的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
}
}
以下示例使用 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"));
显然,你不能检查它的任何类型。但是,您可以尝试使用已知类型的解析器对其进行解析,如果解析成功,则将其转换为该类型并继续。
例如,整数解析辅助函数是Integer.parseInt(String)
. 不幸的是,它会在失败时引发异常(这将使您的代码在那时变得丑陋和缓慢),并且我不确定基础库中是否有替代品(例如,相当于 C#'s TryParse
)。