java - 可以将数据类型保存到变量吗? (数据类型 = 整数)?

标签 java reflection types type-conversion

在我正在编码的类中,我通常必须将变量转换为其他数据类型。我想制作一种可以截断此过程的方法。我希望它是这样的:

    public static Object typeCast(Object o, DataType type){
    if (o instanceof type){
        return (type) o;
    }else{
        return false;
    }
}

但是,我不知道如何将数据类型保存为变量。这可能吗?

最佳答案

是的,每个DataType都是一个类,您可以在运行时使用getClass()从对象中获取它。 保存对象的类非常简单。

Class<Integer> clazz = Integer.class;
Object obj = Integer.valueOf(1);
clazz.instanceOf(obj); // will return true in that case.

如果可能的话,您还可以使用类似以下的方法进行强制转换,如果没有,则返回 null,这适用于您放入的所有类和对象。

public static <T> T typeCast(Object o, Class<T> type) {
    if (type.isInstance(o)) {
        return type.cast(o);
    } else {
        return null;
    }
}

关于java - 可以将数据类型保存到变量吗? (数据类型 = 整数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22442541/

相关文章:

java - 动态地将Object实例转换为真正的子类实例

java - 无法找到类注释

java - 如何从 Scala 中的泛型类型获取字段名称和字段类型?

JAVA - 对字符的逻辑运算

java - Hibernate 代码不工作,如何解决?

java - 通过 Java 程序使用和配置 Maven,使用 Maven Java API

c++ - long double C++的范围是多少

java - XtUnit 支持性能测试吗?

java - 将字符串扫描器转换为类类型

scala - Scala 2.10 反射 API 中的类型相等