如何在 Java 框架中的 Java 中修复代码中的"ambiguous method call"



我正在YouTube上遵循Java(#13(中的游戏框架教程,我卡在BookStore Application的索引方法中。我不能再进一步了,因为我得到:"模棱两可的方法调用。索引中的渲染(Set(和索引$中的渲染(Set(都匹配"。

我试图更改列表设置,但我得到的按摩基本上与列表相同。

public class BooksController extends Controller {
    public Result index(){
        Set<Book> books = Book.allBooks();
        return ok(index.render(books));  //<--------- the error
    }        
}
public class Book {
    public Integer id;
    public String title;
    public Integer price;
    public String author;
    public Book(Integer id, String title,Integer price, String author){
        this.id = id;
        this.title = title;
        this.price = price;
        this.author = author;
    }
    public static Set<Book> books;
    static {
        books = new HashSet<>();
        books.add(new Book(1, "Java", 20, "ABC"));
        books.add(new Book(2,"C++", 30, "XYZ"));
    }
    public  static Set<Book> allBooks(){
        return books;
    } 
}

您会收到此错误,因为来自views.html.index.render index和 BooksController 中的方法index()具有相同的名称,并且编译器混淆了使用什么方法。例如,只需将渲染方法的名称更改为其他名称booksIndex()您的问题就会消失。

public class BooksController extends Controller {
    public Result booksIndex(){
        Set<Book> books = Book.allBooks();
        return ok(index.render(books));
    }        
}

附言不要忘记更改您的路由文件

最新更新