java值类来保持对象类型以备以后转换?
我正在做一个使用本体来启动算法的项目。换句话说,从语义数据库中检索算法的参数/返回值,以便使用SPARQL查询启动它们
比方说,我想在这样一个算法执行后得到它的结果,它有一个特定的类型,但我必须以一种非常通用的方式存储它。我会做Object result = myAlgorithm(param1, param2, ...);
。但这不允许我存储结果的类型,以便以后进行铸造。我正在考虑一个解决方案,但我不确定它在Java中的合法性:
public class Value {
Object o;
Class<?> type;
public Value(Object o, Class<?> type) {
this.o = o;
this.type = type;
}
Class<?> getType() { return type; }
Object getO() { return o; }
}
算法的返回类型也存储在数据库中。我知道这听起来有点复杂,但我希望你明白我想做什么
# 1 楼答案
每个对象已经在
result.getClass()
方法中保留了它的类型,因此不需要Class<?> type
字段。在处理代码中,您可以