当前位置: 首页 > 知识库问答 >
问题:

使用流从对象列表转换为字符串列表

宓英哲
2023-03-14

我最近开始处理Java流。我试图从我的一个SQL查询的结果集中获取字符串值。结果集只从数据库中选择一个字符串/Varchar列。

所以我做了:

List<String> list = query.getResultList().stream().map(Object::toString).collect(Collectors.toList());

或:

List<String> list =  = query.getResultList().stream().map(String::valueOf).collect(Collectors.toList());

我相信地图具有将数据从一种类型转换为另一种类型的功能。在本例中,从对象到字符串,然后在字符串列表中收集它们。

但上面的代码显示了编译时错误:无法从对象转换为字符串列表。

请给我建议正确的做法,并说明我的理解有什么问题。

共有2个答案

冀胤运
2023-03-14

使用TypeQuery

这消除了相当多余的重新映射,并引入了类型安全性。

通博实
2023-03-14

因为查询。getResultList()返回一个原始类型列表,它将中断严重基于泛型类型信息的流管道。原始类型在使用时有效地删除了有关泛型类型的所有信息,因此流收集器返回对象。

您可以通过手动引入泛型类型并将其转换为列表来解决此问题

List<String> collect = ((List<?>) query.getResultList()).stream()
    .map(Object::toString)
    .collect(Collectors.toList());
 类似资料:
  • 问题内容: 我想将json字符串转换为对象列表。请帮我。如果由来完成,那会更有帮助。 我试过了,但是没有用。我不想要该json的所有值。MatrixModel中提到的 这是一个对象 这是Json String 问题答案: 您可以使用json2csharp.com将json转换为对象模型 将您的JSON粘贴到Box中。 单击“生成”。 您将为您的对象模型获得C#代码 通过使用 NewtonJson*

  • 我在编写从JSON字符串到对象列表的转换代码时遇到了Kotlin的问题。 类型不匹配。必需:键入!找到:()→单位 那么有没有解决办法让它为科特林工作呢?

  • 我有一个包含员工姓名的字符串列表。

  • 问题内容: 我有一个代表列表的字符串: 我想把那些乱七八糟的字符串变成一个实际的清单。我想可以将数字进行正则表达式并循环到(),但是有没有更简单的方法?不知道如何将其设置为正则表达式。 问题答案: 使用ast.literal_eval。

  • 问题内容: 这是我的JSON数组:- 我的String对象中有这个。现在,我想将其转换为Java对象并将其存储在Java对象列表中。例如在学生对象中。我正在使用下面的代码将其转换为Java对象列表:- 我的清单课程是:- 我的学生对象是:- 我在这里想念什么吗?我收到以下异常消息:- 问题答案: 您要Jackson解析一个。告诉它解析一个(学生)。由于是通用的,因此通常会使用TypeReferen

  • 这是我的JSON数组:- 我在String对象中有这个。现在我想把它转换成Java对象并存储在Java对象列表中。例如在学生对象中。我使用下面的代码将其转换为Java对象列表:-