0
泛型類型,我有以下幾點:內部參數
public <T extends Node> T create(Class<T> classType, String id, Transaction t){
T obj;
try {
NodeKey nodeKey = new NodeKey(classType, id);
obj = classType.getConstructor(NodeKey.class, Transaction.class).newInstance(nodeKey, t);
add(obj, t);
return obj;
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
有你可以看到,我「構建」 NodeKey nodeKey = new NodeKey(classType, id);
;我想能夠超載上面的方法接受只是NodeKey
和Transaction
,但我不知道我怎麼能告訴泛型T型是由像nodeKey.getUserType()
方法返回的類。
這可能嗎?
你想添加一個通用參數到'NodeKey'嗎?因此,'NodeKey nodeKey = new NodeKey (classType,id);'。 (和以前一樣,我建議避免反射。) –
2014-09-29 12:40:16