这里是我想要实现的函数签名.
public boolean isBaseTypeOrArray(Object obj){~}
Run Code Online (Sandbox Code Playgroud)
只有当obj属于以下类型之一时,我才想返回true.
boolean or boolean[]
byte or byte[]
short or short[]
int or int[]
long or long[]
float or float[]
double or double[]
char or char[]
java.lang.String or String[]
Run Code Online (Sandbox Code Playgroud)
对于一个单独的值检查它是否是其中一个包装类(Integer,Float,...)的实例或String应该工作因为自动装箱,但我不知道如何检查数组的情况.有任何想法吗?
要测试对象是否是数组,只需获取它的类并使用它getClass().
要获取元素类型数组可以使用isArray().
要测试type是否是原始的,您可以使用getComponentType().
如果你想检查类型是否类似String,请使用isPrimitive().
无论如何,这应该与您的问题中的类型匹配
public static boolean isBaseTypeOrArray(Object obj) {
Class<?> c = obj.getClass();
return c.equals(String.class)
|| c.equals(String[].class)
|| c.isArray() && c.getComponentType().isPrimitive();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7623 次 |
| 最近记录: |