【发布时间】:2014-09-22 05:28:36
【问题描述】:
如果类型是原始类型、原始包装器或字符串,JDK 或通用基本库中是否有一个方法返回 true?
即
Class<?> type = ...
boolean isSimple = SomeUtil.isSimple( type );
对此类信息的需求可以是例如检查某些数据是否可以用 JSON 等格式表示。使用单一方法的原因是能够在表达式语言或模板中使用它。
【问题讨论】:
-
基元不是对象,因此它们不是任何类的实例。这里一切都很简单。检查包装器:一个instanceof Number。检查字符串:str instanceof String.
-
@DmitryTsechoev:1)你误读了这个问题。还有用于原始类型的
Class对象(请参阅Double.TYPE)并且应该测试这些对象,而不是类/原始变量/字段的实例。 2) 对象是Number的实例并不意味着它是原始包装器(例如BigInteger不是原始包装器,但它是Number)