这可能吗?我可以根据字符串的值从一个类或另一个类中实例化一个对象吗?
我有这样的代码:
public Map<Language, IConverter> converters;
// ...
public IConverter buildConverter(Language lang) {
IConverter converter = new ???(buildMap(lang)); <---- Problem here
converters.put(lang, converter);
}
public Map<Integer, String> buildMap(Language lang) {
// ...
}
whereLanguage
是一个包含标识语言的字符串的 bean 类,并且IConverter
是由几个(未定义数量)具体实现的接口Converter
。
我需要为if
每个支持添加一个子句Converter
吗?有没有办法确定哪个字符串属于哪个类,可能是使用 Map 或类似的东西?
我可能会放弃 Language 课程,因为它有点肤浅,看不到它的扩展。
编辑
我结束了使用 Jesper 的答案,我不得不调整我的Language
课程以使其包含完整的语言名称,并将包名称、语言名称和“转换器”连接起来。
男孩,一开始反射很可怕,有很多很多的例外。