我有一个根本问题。
有几个课程,延伸另一个课程(“技能”) “技能”包含一些抽象方法,如:
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);
答案 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);
这不是一个很好的方法来实现你所需要的吗?