我有下面的类AccountWebappGridRow,,它扩展了AccountGridRow
public class AccountWebappGridRow<Accounts> extends AccountGridRow implements java.io.Serializable {AccountGridRow contains具有以下字段:
private Map<Integer, Integer> balances;使用公共getter/setter:
public Map<Integer, Integer> getBalances() {
return balances;
}
public void setBalances(Map<Integer, Integer> balances) {
this.balances = balances;
}我是否可以以某种方式重写/替换继承的
private Map<Integer, Integer> balances;相反,在我的AccountWebappGridRow...with中:
private Map<String, Integer> balances;发布于 2017-07-03 12:15:51
好的。你可以这么做..。一旦,您就可以提供一个映射,允许您将Integer键转换为字符串键。
换句话说:您的类知道Integer键和值。当然,您现在可以添加另一个使用相同值的映射。唯一需要的是您创建一个有意义的映射函数。有意义的意义:一种符合你要求的功能。我们不知道Map<String, Integer>应该保存什么内容;所以我们不能告诉您如何在这里正确地映射键!
最简单的答案是使用
String stringKey = someIntegerKey.toString();resp.
Integer integerKey = Integer.parseString(stringKey);使用这些映射,您现在可以获取内部映射并创建一个“结果”映射,该映射再次使用整数。
换句话说:您可以将这个新映射添加到您的类中;或者您可以完全重新工作您的类,并将该balances字段更改为使用不同的键。所有这些都只是“工作”--所有这些都取决于您如何定义如何从Integer获得字符串键;反之亦然。
发布于 2017-07-03 12:21:21
您可以定义一个使用流将Map<Integer, Integer>转换为Map<String, Integer>的方法。
public Map<String, Integer> getBalancesStringString() {
return balances.entrySet()
.stream()
.collect(Collectors.toMap(e -> e.toString(), e -> e.getValue()));
}https://stackoverflow.com/questions/44885280
复制相似问题