toString.equals不工作?

use*_*660 0 java equals tostring

我正在尝试比较工作,而对于我的生活,我无法弄清楚出了什么问题.

StringL l = new StringL();
    l.insert("banana", 0);
    l.insert("orange", 1);
    l.insert("apple",  2);
    l.insert("pear", 3);
    if (!(l.toString().equals("banana, orange, apple, pear")));{
        System.out.println("Test failed: should have returned banana, orange, apple, pear but returned " + l.toString());}
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我得到:

Test failed: should have returned banana, orange, apple, pear but returned banana, orange, apple, pear
Run Code Online (Sandbox Code Playgroud)

的ToString:

public String toString() {

        String result = ("") ;
        if(size() > 0) 
            result += stringList.get(0);

        for(int i = 1; i < size(); i++) 
            result += ", " + stringList.get(i);

        return result;
    }
Run Code Online (Sandbox Code Playgroud)

Sot*_*lis 7

你有一个额外的;地方,你不应该

if (!(l.toString().equals("banana, orange, apple, pear")));{
                                                          ^
Run Code Online (Sandbox Code Playgroud)

这最终看起来像

if (!(l.toString().equals("banana, orange, apple, pear")))
    ;
{
    System.out.println("Test failed: should have returned banana, orange, apple, pear but returned " + l.toString());
}
Run Code Online (Sandbox Code Playgroud)

因此,如果条件是,则if执行空语句.无论如何,块都会执行.;true{}