java如何链接不同类的两个对象?
我想为库构建一个RESTAPI(端点是客户和发票)。其中一个功能是添加发票(使用客户id提交请求)。首先,我必须检查传递的客户id(通过URL中的PUT)是否存在,这意味着要检查customerMap并查看讨论中的id。问题在于customerMap是clientService类(而不是invoiceService类)中的HashMap(使用该映射而不是数据库)。如何获取地图中存储的数据?在此,守则的相关部分:
客户
public class client {
private static final AtomicLong counter = new AtomicLong();
private final long id;
public client() {
this.id = counter.getAndIncrement();
}
public long getId() {
return id;
}
}
客户服务
public class clientService {
public Map<Long, client> clientMap = new HashMap<>();
public client put(client g) {
clientMap.put(g.getId(), g);
return g;
}
public Collection<client> getAll() {
return clientMap.values();
}
}
发票
invoice {
private static final AtomicLong counter = new AtomicLong();
private final long id;
private client client;
public invoice() {
this.id = counter.getAndIncrement();
}
public long getId() {
return id;
}
}
发票服务
public class invoiceService {
private Map<Long, invoice> invoiceMap = new HashMap<>();
public Rechnung createinvoice(invoice g, long id) {
if(<!--client exists-->)
invoicegMap.put(g.getId(), g);
return g;
}}
# 1 楼答案
首先,向ClientService添加一个方法,以按id查找客户端:
然后将ClientService注入到发票服务中
# 2 楼答案
为什么不将clientmap设为静态,并直接从客户端服务类访问它呢