有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    每个对象已经在result.getClass()方法中保留了它的类型,因此不需要Class<?> type字段。在处理代码中,您可以

    if (result instanceOf <SomeSubtype>) {
         <SomeSubtype> resultCasted = (<SomeSubtype>) result;
    }