繁体   English   中英

为什么会出现“分配的左侧必须是变量”?

[英]Why do I get “The left-hand side of an assignment must be a variable”?

我正在做一个“狗登记”,您可以在其中保存有关狗的信息以及对狗进行拍卖等竞标。我是一个初学者,最近被告知阵列列表应该是私有的,此信息使我有些麻烦。

我有一个名为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做它不能做的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM