day*_*mer 0 java intellij-idea java-8
这是我的Test样子:
@Test
public void testFunctional()
{
final Member member = new Member("email", "memberExternalId", "clientId", "clientSecret");
final Category foodCategory = new Category("Groceries", "Food");
final Category utilityCategory = new Category("Internet", "utility");
final List<Transaction> transactions = new ArrayList<>();
{
transactions.add(new Transaction("food1", new BigDecimal("10.00"), true, LocalDateTime.now(), member, foodCategory));
transactions.add(new Transaction("food2", new BigDecimal("20.00"), true, LocalDateTime.now(), member, foodCategory));
}
{
transactions.add(new Transaction("utility1", new BigDecimal("100.00"), true, LocalDateTime.now(), member, utilityCategory));
transactions.add(new Transaction("utility2", new BigDecimal("200.00"), true, LocalDateTime.now(), member, utilityCategory));
}
final Map<String, List<BigDecimal>> groupByCategory = transactions.stream().collect(Collectors.groupingBy(Category::getGroupName));
}
Run Code Online (Sandbox Code Playgroud)
Category 看起来像这样:
public class Category
{
@Id
private String id;
@Column(nullable = false)
private String name;
@Column(name = "group_name", nullable = false)
private String groupName;
@Column(name = "created_at")
private LocalDateTime createdAt;
...
}
Run Code Online (Sandbox Code Playgroud)
当我做:
final Map<String, List<BigDecimal>> groupByCategory = transactions.stream().collect(Collectors.groupingBy(Category::getGroupName));
Run Code Online (Sandbox Code Playgroud)
IntelliJ抱怨 Cyclic Inference
我是Java 8第一次尝试这个功能,不知道是什么导致了这个.

您的输入是a List<Transaction>,您可以从中创建Stream<Transaction>.当您将其收集Stream到a中时Map,您应该提供一个收集器,该收集器将每个收集器映射Transaction到应该对其进行分组的密钥.
你想组Transaction由S GroupName的Category的Transaction.由于Category::getGroupName不是方法Transaction,您不能在此处使用方法引用.相反,您可以使用lambda表达式:
final Map<String, List<Transaction>> groupByCategory =
transactions.stream()
.collect(Collectors.groupingBy(t -> t.getCategory().getGroupName()));
Run Code Online (Sandbox Code Playgroud)
还要注意,这种分组会产生一个Map<String, List<Transaction>>,而不是Map<String, List<BigDecimal>>.
| 归档时间: |
|
| 查看次数: |
2020 次 |
| 最近记录: |