0

私の論理に再び助けが必要でした。クラスが存在すると仮定すると、オブジェクトLoanを含むファイルがありLoanます。ファイルからオブジェクトを読み取り、Loanローンの合計金額を計算しています。メソッドが機能ldすることを証明するために、インスタンスの 1 つに変数名を付けました。getLoanAmount()

while ループの最後で、ローン オブジェクトを計算して整数に変換する方法を考え続けました。input.readObject()メソッドがオブジェクトのインスタンスを返していると考えているので、次のように整数値を取得するのは理にかなっています。

sum = sum + input.readObject().getLoanAmount();

しかし、シンボルが見つからないというエラーが表示され、getLoanAmount()困惑しています。私はそれを釘付けにしたと思いました。誰かが私の論理が間違っている理由を教えてもらえますか? いつものように、本当に感謝しています。コードは次のとおりです。

import java.io.*;
import java.util.Date;
public class RestoringObjects19_7 {
    public static void main(String[] args) throws IOException {
        int sum = 0;
        try {
            ObjectOutputStream output = new ObjectOutputStream(
              new FileOutputStream("Exercise19_7.dat"));
            Loan ld = new Loan(1000);
            System.out.println(ld.getLoanAmount()); //WORKS HERE

            output.writeObject(ld);
            output.writeObject(new Loan(2000));
            output.writeObject(new Loan(3000));
            output.writeObject(new Loan(4000));
            output.writeObject(new Loan(5000));

            output.close();
            ObjectInputStream input = new ObjectInputStream(
              new FileInputStream("Exercise19.7.dat"));
            while(true) {
                sum = sum + input.readObject().getLoanAmount(); //ERROR HERE??
            }
        } catch (Exception e) {
            System.out.println("Sum: " + sum);
        }
  }
}
4

1 に答える 1

1

これは宿題のように見えるので、本格的な答えではなく、ヒントを示します。

  • メソッドinput.readObject()はタイプを返しますObject
  • getLoanAmount()タイプのオブジェクトで定義されるメソッドですLoan

これが、コードのどこが間違っているのかを理解するのに役立つことを願っています。

于 2012-05-10T16:03:25.757 に答える