我有一个有趣的问题,即谷歌没有找到一个好的解决方案。
我有以下课程签名
public class CCheckBoxList<T extends CGenericController<K>, K extends CGenericDomain> extends CGenericViewer<T, K>
对于类CGenericDomain(接口),专用类有自己的方法和专门的构造函数。该接口只有getData和setData方法来获取/设置数据。解决我遇到的早期问题的唯一方法。
在我的一个实现中,我将通过传入使用CGenericDomain实现的对象(Ahhh !!!)来使用CGenericController设置数据(没有问题)
CGenericController和CGenericDomain使用JPA,因此控制器读取/写入/修改数据库中的对象,而CGenericDomain是应该写入数据库的对象。每个主表都有自己的CGnericDomain实现和dCGenericController实现。
在实例化此课程时,我知道 T和K的用途。我在程序的构建过程中明确定义了它们。
这是我到目前为止所知道的
public void setData(HashMap<String, Object> pObjs) {
// TODO Add the required logic for adding into the list all values that are "selected" from an external function
Class<K> clazz = null;
try {
K newK = clazz.newInstance();
if (newK instanceof CGenre)
{
// Requires knowledge of the implementation further up stream!
}
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
itsContentPane.removeAll();
itsContentPane.setLayout(new GridLayout(pObjs.size() + 3, 0));
}
我在Google搜索中提出或发现的选项是
是否有反射方式来获取类的专用构造函数并使用它?如果没有,方法怎么样?我或许可以做方法。
社区的任何帮助都会很棒。冒险进入新领域!
谢谢!