我正在努力检查对象是否是特定数据类型的实例,这是由用户输入提供的。例如:
Object a = new Object();
String userDataType = JOptionPane.showInputDialog("What kind of datatype do you want to check?");
if(Object a instanceof userDataType)) doStuff();
我尝试过反思,但我仍然无法落后于此......
提前谢谢!
答案 0 :(得分:3)
尝试与对象类的getSimpleName()
进行比较,该对象仅返回非限定类名(不包含包名)。
Object o;
String userInput;
if (o.getClass().getSimpleName().equalsIgnoreCase(userInput))
答案 1 :(得分:0)
instanceof
关键字的工作原理是将其与实际对象类型进行比较,而不是字符串。例如:
Object a = getUseObject();
if( a instanceof String ) doStuff(); // if a is actually a String
else if (a instanceof double[]) doStuff(); // if a is actually an array of doubles
答案 2 :(得分:0)
将其强制转换为您要检查的数据类型,根据需要处理异常。