Java 从对象变量恢复属性
这就是我问题的背景 我创建了一个单链表,它的节点属性是一个对象变量,所以我可以存储来自不同类的对象。到目前为止还不错Java 从对象变量恢复属性,java,object,methods,attributes,Java,Object,Methods,Attributes,这就是我问题的背景 我创建了一个单链表,它的节点属性是一个对象变量,所以我可以存储来自不同类的对象。到目前为止还不错 public class Node { Object data; Node next; public Node(Object data) { this.data=data; this.next=null; } [...]
public class Node
{
Object data;
Node next;
public Node(Object data)
{
this.data=data;
this.next=null;
}
[...]
}
问题是我不知道如何从存储的对象恢复属性/方法。比如这个
public class Product
{
double discount;
double price;
public double getPrice() {
return price;
}
[...]
帮助。有几种不同的方法可以获得这些信息 Apache提供了一个很好的API, 或者可以使用Java反射
另一种方法是,如果存储的对象类型有限(或至少计划从中检索属性),则使用
instanceof
和类cast,如中所示
if(node.data instanceof Product){
Product p = (Product) node.data;
//Get attributes from products
else if(node.data instanceof SomethingElse){
SomethingElse p = (SomethingElse) node.data;
//Get attributes from somethingElse
}
...
else{
//throw an error or ignore the final case
}