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->classname 然后通过执行以下操作获取类的对象更简单的方法?:

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

2 回答 2

0

好吧,无论你从哪里得到“89”,都应该有一个地方来存储一个小的工厂方法,它可以在不使用反射的情况下创建匹配的实例......

于 2013-05-05T18:50:24.550 回答
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);

这不是实现您需要的好方法吗?

于 2013-05-05T18:52:45.590 回答