我正在制作一个“狗登记册”,您可以在其中保存有关狗的信息并对狗进行拍卖等。我是一个初学者,最近被告知数组列表应该是私有(private)的,这个信息给我带来了一些麻烦。
我有一个名为Auction
的类,您可以在其中存储出价,我在此类中创建了一个 get 方法以在主类中使用。它适用于每一行,除了我的方法中可以删除用户的一行。
private void deleteUser()
{
System.out.println("Enter the name of the user: ");
String name = input.nextLine().toLowerCase().trim();
User deleteUser = getUser(name);
while (name.isEmpty()) {
System.out.println("Error. Enter the name of the user: ");
name = input.nextLine().toLowerCase().trim();
deleteUser = getUser(name);
}
if (deleteUser == null) {
userException();
return;
}
for (Auction a : auctionRegister) {
ArrayList<Bid> bids = new ArrayList<>();
for (Bid b : a.getBidList()) {
if (b.getUser() != deleteUser) {
bids.add(b);
}
}
a.getBidList() = bids;
}
if (deleteUser.getDogList() != null) {
for (Dog dog : deleteUser.getDogList()) {
dogRegister.remove(dog);
}
}
userRegister.remove(deleteUser);
System.out.println("User " + deleteUser.getUserName() + " is removed");
}
我在这一行收到错误消息(“赋值的左侧必须是变量”):
a.getBidList() = bids;
当我公开数组列表时,一切正常,所以我的问题是,我该如何解决这个问题?
Java 有两种用于存储信息的“桶”。一种是变量,另一种是常量。这两种类型都可以让您查看桶中的内容。变量还允许您替换存储桶的当前内容。
你的语法,a.setBidList()
是一个方法调用,它是常量。您可以从中读取内容,但无法为其分配新值。由于它位于赋值语句的左侧,因此您要求 Java 做一些它不能做的事情。
我是一名优秀的程序员,十分优秀!