我有下面的代码,我想包括 getNames
中的方法 List.of
在 buildAccounts()
,但是,当我尝试此操作时,我得到一个错误,表示所需类型的 List<Account>
与提供的不匹配 List <Object>
. 我已经尝试更改了 getNames()
到 Account
加入 findAny().orElse(null)
它返回对象而不是列表,但此方法不再在中生成正确的输出 List
格式。我的问题是,我需要做哪些更改才能允许 getNames()
用于 buildAccounts List.of
在不改变输出的情况下 getNames()
?
public List<Account> buildAccounts(MetaData metaData){
return List.of(
createAccount(metaData.getAccountName(), metaData.getaccountType()), getNames(metaData, metaData.getaccountType()));
}
public List<Account> getNames(MetaData metadata, AccountType type){
return metaData.getNames().stream()
.map(n -> createAccount(n, type))
.collect(Collectors.toList());
}
public Account createAccount(String name, AccountType accountType){
....
}
3条答案
按热度按时间eiee3dmh1#
在我看来,你似乎试图添加一个
Account
(由createAccount(...)
)到List
属于Account
(由getNames(...)
).但它不是这样工作的。
List.of
获取任意数量的相同类型的元素并生成List
是的。你需要这样的东西:
2wnc66cl2#
您的问题是list.of不能那样使用。如果getnames的输出无法更改,则需要更改buildaccounts,而不要使用list.of here。
因为您已经将这个问题标记为流,并在其他函数中使用流,所以一种方法是在buildaccounts中创建两个流并将它们合并。
wgeznvg73#
在我看来,下面的内容和你想要达到的目标是一样的?