【问题标题】:How to use Arrays.asList() method to return a list of objects?如何使用 Arrays.asList() 方法返回对象列表?
【发布时间】:2019-12-17 19:54:01
【问题描述】:

我正在使用 Spring-boot 设置 RestController。这个项目需要我返回一个对象列表(在本例中是 Book 类的对象)。我该怎么做?

我通过传递如下所示的 Book 类的对象尝试了 Arrays.asList() 方法:

java

@RestController
public class BookController {

    @GetMapping("/books")
    public List<Book> getAllBooks() {

        return Arrays.asList(new Book(1l, "Book name", "Book author"));

    }
}

java

public class Book {

    Long id;
    String name;
    String author;

    public Book(Long id, String name, String author) {
        super();
        this.id = id;
        this.name = name;
        this.author = author;
    }

    public Long getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getAuthor() {
        return author;
    }

    @Override
    public String toString() {
        return "Book [id=" + id + ", name=" + name + ", author=" + author + "]";
    }
}

我收到此错误"Type mismatch: cannot convert from List&lt;Object&gt; to List&lt;Book&gt;"。我该如何解决这个问题?

【问题讨论】:

  • 为什么Arrays.asList 不起作用?
  • 你的代码有什么问题?你有没有得到任何错误或任何意外的结果?
  • getAllBooks() 方法的返回语句中出现此错误“类型不匹配:无法从 List 转换为 List
  • 你分享的代码似乎没有抛出这个错误!
  • 添加 import java.util.*; 并注释掉 jpa 注释使其可以与 javac -Xlint:all *.java 一起编译。 (另外,从 Java SE 9 开始使用 List.of。)

标签: java spring jpa


【解决方案1】:

这发生在我身上好几次了,原因总是 IDE 以某种方式从 junit 包中自动导入了其他 Arrays 类,而不是来自 java.util 的那个。 因此,请检查您的导入部分并输入 import java.util.Arrays; 如果另一个 Arrays 类被导入。 @Tom Hawtin - tackline 建议类似,但除了正确导入之外不需要其他任何东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    相关资源
    最近更新 更多