为什么我不能为另一个班级提取方法?

时间:2014-12-09 09:59:12

标签: java if-statement for-loop arraylist assignment-operator

我无法解决为什么我的编译器出现问题。我试图从另一个类中提取一个简单的get方法,以便定义是否借出一本书。

public String displayBooks(){

    for (Book b : book){

        if (b.isLoaned() = false){
            String loan = "Not currently loaned";
        }
        else{
            String loan = "Currently loaned";
        }
        return(book.getTitle() + "       " + book.getAuthor() + "       " );

    }

}

我收到错误,说明找到值时需要变量。 注意:book是我在书中存储书籍对象的arraylist的名称。

2 个答案:

答案 0 :(得分:1)

该行

b.isLoaned() = false

使用赋值运算符,其中应该使用相等运算符。分配需要左侧的左值(变量,而不是值)。

实际上你应该将那部分重写为

!b.isLoaned()

并且,考虑到更广泛的上下文,您可以考虑以下内容,这将在您修复上述内容后立即阻止等待您的编译器错误:

String loan = (b.isLoaned()? "Currently" : "Not currently") + " loaned";

以上内容取代了整个if-else块。

答案 1 :(得分:1)

它会说是因为=是您在下一行中使用的赋值运算符。

if (b.isLoaned() = false)

将其更改为以下内容:

if (b.isLoaned() == false)

if (!b.isLoaned())