java - 错误 : cannot assign a value to final variable

标签 java variables variable-assignment

我正在做一个赋值,但我遇到了这个错误:无法为最终变量计数赋值

到目前为止,这是我的代码...

public class List
{
    private final int Max = 25;
    private final int count; 
    private Person list[];

    public List()
    {
        count = 0; 
        list = new Person[Max];
    }

    public void addSomeone(Person p)
    {
        if (count < Max){
            count++; // THIS IS WHERE THE ERROR OCCURS 
            list[count-1] = p;
        }
    }

    public String toString()
    {
        String report = "";

        for (int x=0; x < count; x++)
            report += list[x].toString() + "\n"; 

        return report;
    }
}  

我是 java 的新手,显然不是计算机高手,所以请尽可能用最简单的术语解释问题/解决方案。非常感谢。

最佳答案

count++; 会抛出错误。根据 Oracle,

A final variable may only be assigned to once. Declaring a variable final can serve as useful documentation that its value will not change and can help avoid programming errors.

您可以跟随那篇文章here .查看您的代码,您似乎真的不希望 count 成为最终的。您希望能够在整个程序中更改其值。解决方法是删除 final 修饰符。

关于java - 错误 : cannot assign a value to final variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32791995/

相关文章:

java - jide oss 3.1.1,缺少checkboxlistselectionmodel?

c++ - C++中删除运算符的困惑

C 结构体中的字符到整数

java - 减去两天并只计算工作日(没有周六或周日)

java - 如何让Runtime.getRuntime().exec一一执行命令并获取输出而不是执行所有命令

java - 在 if 语句中初始化变量 (Java)

excel - 声明事件工作簿变量 Excel Vba

python - 从 iterable 中解包元素会产生 SyntaxError

java - 我如何根据非唯一键插入或更新 jpa 实体?

javascript - 通过 AJAX 传输变量