如何检查变量的类型。这样:
伪代码:
do{
VARIABLE = JOptionPane.showInputDialog(null,"X = ");
}while(VARIABLE != Integer);
Set_X(VARIABLE);
答案 0 :(得分:2)
在这种情况下,您的VARIABLE
变量的类型为String
。
您可以尝试/捕获该变量上的Integer.valueOf
以获取其Integer
值。
如果抛出NumberFormatException
,则表示用户输入无法转换为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
}
}
答案 1 :(得分:0)
显然,您无法检查任何类型。但是,您可以尝试使用已知类型的解析器解析它,如果解析成功,则将其转换为该类型并继续。
例如,整数解析辅助函数是Integer.parseInt(String)
。不幸的是,它会在失败时抛出一个异常(这将使你的代码在这一点上变得丑陋和缓慢)并且我不确定基础库中是否有其他选择(相当于,例如,C#' s {{1 }})。
答案 2 :(得分: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"));