获取具有其他属性的类的属性

时间:2013-05-05 18:46:50

标签: java

我有一个根本问题。

有几个课程,延伸另一个课程(“技能”) “技能”包含一些抽象方法,如:

public abstract int getID();
public abstract String getName();
public abstract String getDescription();

和子类:

@Override
public int getID()
{
    return 69;
}

@Override
public String getName()
{
    return "name";
}

@Override
public String getDescription()
{
    return "description";
}

现在,假设我需要获得id为“89”的子类的描述。

有没有比这更容易的方法,而不是让HashMap存储id-> classname,然后通过执行以下操作获取类的对象?:

Class cl = Class.forName(classname);
Object o = cl.getConstructor().newInstance();
Method m = cl.getMethod("getDescription");
return (String) m.invoke(o);

2 个答案:

答案 0 :(得分:0)

嗯,无论你在哪里,#34; 89"从,应该有一个存储一个小工厂方法的地方,该方法创建匹配的实例而不使用全部反射......

答案 1 :(得分:0)

Map<Integer,YourObject> yourMap = new HashMap<Integer,YourObject>();
yourMap.put(89,new YourObject(89,"description","name"));
yourMap.put(69,new YourObject(69,"description1","name1"));
..

YourObject eight_nine = yourMap.get(89);

这不是一个很好的方法来实现你所需要的吗?