我想根据Field类型做一些逻辑。
我正在获取字段(Field 类)类型:
Field[] fields = o.getClass().getFields();
for (Field field : fields) {
// which and how to use:
//Class<?> t = field.getType();
// Type type = field.getType();
if (type == byte) {
} else if (type == int) {
}
}
我怎么知道我得到的是哪种类型?
最佳答案
你可以这样做:
import java.lang.reflect.Field;
import java.lang.reflect.Type;
class Test
{
public String s;
public int member = 1;
public byte try1 = 0;
public int member2 = 4;
public static void main(String []args)
{
Test o = new Test ();
Field[] fields = o.getClass().getFields();
for (Field field : fields) {
Class<?> type = field.getType();
if (type.equals(byte.class)) {
System.out.println("byte");
} else if (type.equals(int.class)) {
System.out.println("int");
} else {
System.out.println("something else");
}
}
}
}
输出:
something else
int
byte
int
关于java 如何检查我从 getType 函数获取的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27055238/