有没有办法在一个类中找到类型的字段
java.lang.Character.TYPE
java.lang.Byte.TYPE
java.lang.Short.TYPE
java.lang.Integer.TYPE
java.lang.Long.TYPE
java.lang.Float.TYPE
java.lang.Double.TYPE
有一个用于 char、byte、short 等的 isPrimitive 方法。
最佳答案
您可以从 Class#getDeclaredFields()
开始获取您类(class)中的字段数组。然后,遍历每个 Field
在数组中并根据需要进行过滤。
是这样的:
public static List<Field> getPrimitiveFields(Class<?> clazz)
{
List<Field> toReturn = new ArrayList<Field>();
Field[] allFields = clazz.getDeclaredFields();
for (Field f : allFields)
{
Class<?> type = f.getType();
if (type.isPrimitive())
{
toReturn.add(f);
}
}
return toReturn;
}
更多信息:
- >
Field#getType()
- >
Class#isPrimitive()
(虽然听起来你已经知道这个了)
编辑
可能值得澄清的是类型 java.lang.Character.TYPE
等,与类文字相同。也就是说,
java.lang.Character.TYPE == char.class
java.lang.Byte.TYPE == byte.class
java.lang.Short.TYPE == short.class
java.lang.Integer.TYPE == int.class
java.lang.Long.TYPE == long.class
java.lang.Float.TYPE == float.class
java.lang.Double.TYPE == double.class
关于java - 使用反射查找字符串、 boolean 值、整数类型的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148195/