gpt4 book ai didi

java - 如何链接两个不同类的对象?

转载 作者:行者123 更新时间:2023-12-01 06:01:45 25 4
gpt4 key购买 nike

我想为库构建一个 REST API(端点是客户和发票)。其中一项功能是添加发票(带有客户 ID 的 PUT 请求)。首先,我必须检查传递的客户 ID(通过 URL 中的 PUT)是否存在,这意味着检查 customerMap 并查看正在讨论的 id。问题是 customerMap 是 clientService 类中的 HashMap(而不是 invoiceService 类中的)(使用 Map 而不是数据库)。如何获取 map 中存储的数据?代码的相关部分如下:

客户端

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;
}}

最佳答案

首先向您的 ClientService 添加一个方法以通过 id 查找客户端:

public Client getClientById(Long clientId) {
return clientMap.get(clientId);
}

然后将您的 ClientService 注入(inject)到您的 Invoice Service 中;

public class invoiceService {
private Map<Long, invoice> invoiceMap = new HashMap<>();
private ClientService clientService; // provide a getter or a constructor argument for the service

public Rechnung createinvoice(invoice g, long id) {

if(clientService.getClientById(id) != null) {
invoicegMap.put(g.getId(), g);
}
return g;
}}

关于java - 如何链接两个不同类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56683942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com