如何检查java中是否存在具有某些值的实体
我有两个实体客户和电影,我必须租电影,所以我需要一个客户和一部电影,这就是为什么我创建了租赁类。问题是,当我想检查我想租一部电影时输入的id是否存在于客户端文件中,如果不存在则打印消息。但它不起作用
类客户端:
public class Client extends BaseEntity<Long> {
private String name;
private int age;
public Client(String name, int age){
this.name = name;
this.age = age;
}
public String getName(){return name;}
public int getAge(){return age;}
public void setName(String name){this.name=name;}
public void setAge(int age){this.age=age;}
@Override
public String toString(){
return "Client:{ " + name + " "+age + "} " + super.toString();
}
}
这部电影几乎和《客户》一样,租赁类:
public class Rental extends BaseEntity<Long> {
private Long IdClient;
private Long IdMovie;
public Rental(Long IdClient,Long IdMovie){
this.IdClient = IdClient;
this.IdMovie = IdMovie;
}
public Long getIdClient() {return IdClient;}
public Long getIdMovie(){return IdMovie;}
public String toString(){
return "Rental:{ " + IdClient + " "+ IdMovie + "} " + super.toString();
}
}
还有控制台,我试图检查是否存在:
private Rental readRental(){
printAllClients();
printAllMovies();
System.out.println("Enter the Rentals ID , Clients ID and the rented Movie ID: ");
BufferedReader bufferR = new BufferedReader(new InputStreamReader(System.in));
try{
Long id=Long.valueOf(bufferR.readLine());
Long id1=Long.valueOf(bufferR.readLine());
Long id2=Long.valueOf(bufferR.readLine());
Rental rental = new Rental(id1, id2);
rental.setId(id);
return rental;
}catch (IOException e){
e.getStackTrace();
}
return null;
}
private void addRentals(){
Set<Client> clients = clientC.getAllClients();
Rental rental = readRental();
if (rental == null || rental.getId() < 0 ){
return;
}
if (!clients.contains(rental.getIdClient())){ //!!!!!!!!!!
System.out.println("Doesn't contains");
}
else{
System.out.println("Contains");
}
try{
rentalC.addRental(rental);
System.out.println("A rental was added.");
}
catch (ValidatorException e){
e.printStackTrace();
}
}
当我介绍一个存在的客户时,它会告诉我“不存在”。为什么
# 1 楼答案
此外,在Java中,如果希望在集合中使用客户机对象,则类客户机必须正确重写类对象中的两个方法:
如果希望将客户端对象用作映射中的键,也应该这样做
考虑这两个资源以获取更多信息: