我正在尝试使用通用方法替换这些特定于类型的save
方法:
public Apple save(Apple apple)
{
pm.makePersistent(apple);
pm.close();
return apple;
}
public Orange save(Orange orange)
{
pm.makePersistent(orange);
pm.close();
return orange;
}
这是我想出来的,但我无法弄清楚如何投出返回值:
public <T> T save(Object fruit, Class<T> model)
{
pm.makePersistent(fruit);
return result;
}
答案 0 :(得分:3)
public <T> T save(T fruit)
{
pm.makePersistent(fruit);
pm.close();
return fruit;
}
只是复制你之前完成的工作,这应该有效。您可能甚至不需要Class参数。
答案 1 :(得分:2)
为什么需要泛型?
为什么需要退还水果?该方法的调用者已经引用了fruit对象。
public void save ( Fruit fruit )
{
pm.makePersistent(fruit);
pm.close();
}
答案 2 :(得分:2)
上述例子是否真的需要泛型?
public <T extends Fruit> T save(T fruit) {
pm.makePersistent(fruit);
pm.close();
return fruit; //Is this needed?
}
以上内容将为您完成,但如果makePersistent()
方法采用任何类型的水果,则此示例中确实没有必要。
当然,如果真实用例有所不同,您可能需要它。