[英]Proper way of creating an array of Objects holding objects from superclass and subclass
[英]Proper way to create superclass from subclass
我有一个客户端 - 服务器应用程序。
客户端有一个类:Item.java
public class Item
public string name;
public string size;
并且服务器有一个类PersistableItem.java,它允许我使用JPA存储它
public class PersistableItem extends Item
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long Id;
并将其发送到执行addItemToServer方法的服务器:
public void addItem( Item item){
//create PersistableItem from item
DAO.save([paramerter = PersistableItem]);
}
在我的服务器方法中,我将项目转换为PersistableItem吗? 我是否在PersistableItem中创建了一个包含Item的构造函数?
这里的设计是什么?
正如您所建议的,您可以在SomePersistedItem中创建一个带有SomeItem的构造函数。 在构造函数中,使用名称和大小调用super,因此可以正确填充SomePersistedItem。
public class SomePersistableItem extends SomeItem
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long Id;
public SomePersistableItem(SomeItem originalItem) {
super(originalItem.getName(), originalItem.getSize());
}
而你只需添加它。
public void addItem( someItem item){
DAO.save(new PersistableItem(item));
}
假设你在SomeItem中有一个带有名称和大小的构造函数。 否则你使用任何方法来构建SomeItem(Factory,setters ......)
我会让你的persistable项扩展一个接口
public interface Persistable {
boolean persist();
}
public class SomePersistableItem extends SomeItem implements Persistable {
}
public void addItem(Persistable p) {
p.persist();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.