-6

私はJavaが初めてで、toStringの実装で問題が発生しました。誰かが私を助けることができますか?toString は、結果の意図ではなく、パッケージ名と呼び出し元のクラス名を返します。私はEclipse 3.7.2を使用しています。コードの別の場所で toString を使用すると、適切な結果が返されます

私のファイルは MyLibraryTest.java です

    public void testToString(){
    setup();
    addItems();
    //assertEquals("Test: 2 books; 2 people.", ml.toString());
    String results = ml.toString();
    assertEquals("Test: 2 books; 2 people.", results);

}

    results = org.totalBeginner.tutorial.MyLibraryTest.testToString

私は何を間違えたのだろうか?

ここに setup() のコードがあります

        public void setup(){
    b1 = new Book("Book1");
    b2 = new Book("Book2");

    p1 = new Person();
    p2 = new Person();

    p1.setName("Fred");
    p2.setName("Sue");

    ml = new MyLibrary("test");

    }

これが addItems() のコードです

private void addItems() {
        ml.addBook(b1);
        ml.addBook(b2);
        ml.addPerson(p1);
        ml.addPerson(p2);
         }

ここで toString() に実装する方法

public String toSrting(){ // this.getName() + ": " + this.getBooks().size() + " books; " + this.getPeople().size() + " people. "; を返す return "テスト: 2 冊の本; 2 人。";
}

4

1 に答える 1

2

タイプミスのため、実際にはtoStringメソッドをオーバーライドしていません。代わりに toSrting メソッドを定義しました。ご覧のとおり、文字trの順序が入れ替わっています。これが、 から直接予期しない出力が発生する理由ですObject.toString

于 2012-06-27T16:56:37.477 に答える