gpt4 book ai didi

Java 使用 Class 转换对象

转载 作者:行者123 更新时间:2023-12-02 03:06:27 25 4
gpt4 key购买 nike

我有一个 String、integer、double 等数据持有者实例,我将数据保存到 (Oblect dataHolder) 和 (Class dataHolderClass) 。我的问题是如何将dataHolder返回转换为intString ...?

例如,我有以下数据类:

class DataHolderClass {
private Object data;
private Class classData;

DataHolderClass(Object data, Class dataClass) {
this.data = data;
this.classData = dataClass;
}

Object getDataBack() {
return this.data;
}

Class getDataClassBack() {
return this.classData;
}
}

那么,在知道 dataClass 并拥有 data 的情况下,如何将数据转换回来呢?这是一些调用代码(不确定是否可以实现这种魔法):

.....
public void foo(DataHolderClass input) {
Class inputClass = input.getDataClassBack();
Constructor constr = inputClass.getConstructor();
DataType recoveredData = constr.newInstance();
// ^------- the DataType is defined in inputClass but how can I get it?
recoveredData = (DataType) input.getDataBack();
...
}

最佳答案

从 java 5 - 泛型开始就存在了。

class DataHolderClass<T> {
T data;

DataHolderClass(T data) { ... }
T getData() {
return data;
}
}

您具有开箱即用的类型安全性。

关于Java 使用 Class 转换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41663055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com