0
我有一个基本问题。获取具有另一个属性的类的属性
有几个类,扩展另一个类(“技能”)。
“技能”包含了一些抽象方法,如:
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->类名,然后通过执行获得类的对象更简单的方法如下?:
Class cl = Class.forName(classname);
Object o = cl.getConstructor().newInstance();
Method m = cl.getMethod("getDescription");
return (String) m.invoke(o);
这是一个大代码的气味。你为什么要找出这样的班级呢? – 2013-05-05 18:50:19
确实如此。这就是为什么我要求更好的方法。例如:一名玩家获得一个buff。后来,我需要检查一下,如果玩家仍然拥有这个buff,而且我只有这个ID。但考虑一下,我也可以直接存储buff的实例.. – dr0n3 2013-05-05 19:10:11
阅读此:http://steve-yegge.blogspot.com/2008/10/universal-design-pattern.html – 2013-05-05 19:32:31