4

プログラムを起動すると、コンテンツを取得したいときに、オブジェクトへのリンクが表示されます。私の間違いはどこですか?

storage.addRecord(record)問題はにあると思いますReaderXls.class

結果:

 Reading is over 
 Start reading from Storage
 work2obj.Record@2910d926

.

  public class Start {
            public static void main(String[] args) {
                System.out.println("Start reading from Xls");
                ReaderXls read = new ReaderXls();
                Storage storage;
                storage = read.ReadXls("Text1obj",0,1);
                System.out.println("Reading is over");
                System.out.println("Start reading from Storage");
                System.out.println(storage.getRecord(1));
            }
        }

.

  public class Storage
    {
        List<Record> record;
        public Storage(){
            this.record = new ArrayList<Record>();
        }

.

  public Record getRecord(int number){
            return this.record.get(number);
        }    
      }

.

  public class ReaderXls {
  public Storage ReadXls(String sfilename,int firstColumn, int lastColumn){
            Storage storage = new Storage();
            try {      
  Record record = new Record(j, Integer.parseInt(ContentCount), RowContent);
                    storage.addRecord(record);
  }
 }
4

2 に答える 2

7

toStringクラスにメソッドを実装して、Record表示するデータを含む文字列を返す必要があります。

デフォルトでは、あなたのクラスは を実装していないためtoStringObject.toString()が呼び出され、返されます<the name of the class>@<the object's hashcode>

于 2013-08-09T08:16:14.880 に答える
4

オブジェクトの内容を取得するには、クラス内でtoStringメソッドをオーバーライドする必要があります。Recordオブジェクトの文字列表現を返します。

オブジェクトを文字列として表現したい場合、 toString() メソッドが登場します。toString() メソッドは、オブジェクトの文字列表現を返します。オブジェクトを印刷する場合、Java コンパイラは内部的にオブジェクトの toString() メソッドを呼び出します。したがって、 toString() メソッドをオーバーライドすると、目的の出力が返されます。これは、オブジェクトの状態などである可能性があります。実装によって異なります。

実装の詳細については、こちらをご覧ください。

于 2013-08-09T08:23:25.297 に答える