为什么我不能为另一个类拉取方法?

Why can't I pull a method for another class?

提问人:Finlay 提问时间:12/9/2014 最后编辑:Finlay 更新时间:6/7/2021 访问量:72

问:

我无法弄清楚为什么我的编译器有问题。我正在尝试从另一个类中提取一个简单的 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 是我存储 book 对象的数组列表的名称。

java if语句 for循环 组列表 赋值运算符

评论

0赞 Darshan Lila 12/9/2014
if (b.isLoaned() = false)???
1赞 Liam de Haas 12/9/2014
除此之外,您正在使用您应该使用的地方book.getTitle()b.getTitle
0赞 Finlay 12/9/2014
哎 呦。最近更改了变量的名称。

答:

1赞 Marko Topolnik 12/9/2014 #1

线

b.isLoaned() = false

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

实际上,您应该将该部分重写为

!b.isLoaned()

而且,考虑到更广泛的上下文,您可以考虑以下几点,这将在您解决上述问题后立即防止等待您的编译器错误:

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

以上内容将替换您的整个块。if-else

评论

0赞 Finlay 12/9/2014
多么尴尬。非常感谢:)
1赞 Darshan Lila 12/9/2014 #2

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

if (b.isLoaned() = false)

将其更改为以下内容:

if (b.isLoaned() == false)

if (!b.isLoaned())