该方法未定义类型字符串

时间:2014-03-16 21:43:50

标签: java string

为什么我会在java中使用以下语句对“类型字符串的方法未定义”:

if(book.getTitle().getAuthor().getAward()){..}

错误是针对getAward()

当我将一个类作者定义为:

class Author {

private String name;
private boolean award;
public Author(String n, boolean p){
    name=n;
    award=p;
}

public String getName(){return name;}
public boolean getAward(){return award;}

} 可能错误来自另一个定义(除了作者?)

3 个答案:

答案 0 :(得分:0)

将您的getAuthor()方法实施更改为

public Author getAuthor(){
   return new Author(); // or some author that is set in your object
}

在此,你可以执行另一种方法。 if(book.getTitle().getAuthor().getAward())如果作者类有方法getAward

public class Author{
  public boolean getAward(){ // implementation
  }
}

答案 1 :(得分:0)

您需要将getAuthor方法更改为

public Author getAuthor(){
  return author;
}

如果你想要authors award,那么你应该调用

book.getAuthor().getAward()

答案 2 :(得分:0)

  

实际上让作者在另一个类中并返回一个字符串。 getTitle来自第三个类并返回字符串。本书来自第四节课。

然后答案是显而易见的。

您正试图就调用getAuthor()的结果致电getTitle()。但getTitle()的结果是String ...而String没有getAuthor()方法。

这正是编译错误告诉你的。


事实上,你可能应该写:

if(book.getAuthor().getAward()){..}

然后更改getAuthor()以返回Auteur对象...而不是作者的姓名。

一本书(Oevre)有一个作者,但标题(String)没有。

相关问题