java 如何检查我从 getType 函数获取的类型

标签 java reflection

我想根据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/

相关文章:

Java 泛型不兼容类型

java - 如何使用 viewModel 中的观察者方法解决 "anonymous class derived from observer"错误

c# - 访问空值会导致应用程序失败/C#

c# - 使用 IL Emit 替换 Activator.CreateInstance

c# - 属性与静态属性

java - 将操作系统从 linux 更改为 windows 时的 InputStream 空指针

java - 属性 java.runtime.version 和 java.version 有什么区别

java - Android MkDirs 失败

c# - 在运行时以静态方法获取当前类?

java - 在运行时向字段添加注释