鉴于您只需要 Wrapper Types ,可以在此处使用一些反射技巧(为简洁起见,忽略无关代码的异常处理):
String string = "ABC";Class<?> clazz = Integer.class;Method method = clazz.getDeclaredMethod("valueOf", String.class);if (method != null) { try { Object obj = method.invoke(null, string); System.out.println("Success : " + obj); } catch (InvocationTargetException ex) { System.out.println("Failure : " + string + " is not of type " + clazz.getName()); }}我考虑到以下事实:每个包装器类都有一个 静态
valueOf方法,该方法采用type参数
String,并返回该
wrapper类型的值。如果参数不能转换为相应的包装器类型,则抛出异常。
因此,在上述情况下,如果引发异常,则该
string值不是
clazz类型。
PS: 请注意,对于
Boolean.class,任何不是的字符串都
"true"将被视为
false。



