1. ホーム
  2. java

[解決済み] error: cannot assign value to final variable

2022-02-06 16:10:50

質問内容

課題に取り組んでいるのですが、次のエラーに引っかかっています: cannot assign a value to final variable count

以下は、これまでの私のコードです...

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++; はエラーを投げます。オラクル社による。

final変数は一度だけ代入することができます。変数をfinalと宣言することは、その値が変更されないことを示す有用な文書となり、プログラミングの誤りを回避するのに役立ちます。

その記事の続きを見ることができます こちら . あなたのコードを見てみると、どうやら本当に count は最終的なものでなければなりません。プログラム中、その値を変更できるようにしたいのです。修正方法は final 修飾子があります。