我可以使用Map <string,integer =“”>覆盖Map <integer,integer =“”>吗?

时间:2017-07-03 12:11:59

标签: java dictionary collections

我有以下课程 AccountWebappGridRow ,它扩展了 AccountGridRow

public class AccountWebappGridRow<Accounts> extends AccountGridRow implements java.io.Serializable {

AccountGridRow 包含此字段:

private Map<Integer, Integer> balances;

使用公开 getter / setters:

public Map<Integer, Integer> getBalances() {
  return balances;
}

public void setBalances(Map<Integer, Integer> balances) {
   this.balances = balances;
}

有没有办法可以某种方式覆盖/替换继承的

private Map<Integer, Integer> balances;

在我的 AccountWebappGridRow ...中改为:

private Map<String, Integer> balances;

2 个答案:

答案 0 :(得分:3)

不确定。你可以这样做......只要可以提供一个映射,允许你将整数键变成一个字符串键。

换句话说:您的类知道整数键和值。当然,您现在可以添加另一个使用相同值的地图。唯一需要的是创建有意义的映射功能。 有意义含义:符合 要求的函数。我们不知道Map<String, Integer>应该包含哪些内容;所以我们不能告诉你如何在这里正确映射密钥!

最简单的答案可能是使用

String stringKey = someIntegerKey.toString();

RESP。

Integer integerKey = Integer.parseString(stringKey);

使用这些映射,您现在可以使用内部地图并创建一个再次使用整数的“结果”地图。

换句话说:您可以将新地图添加到您的班级;或者您可以完全重写您的课程并更改balances字段以使用其他键。所有这些只是“工作” - 所有这些都依赖于定义如何从Integer到String键;反之亦然。

答案 1 :(得分:1)

您可以定义一种方法,使用流将{{page.home_content}}转换为Map<Integer, Integer>

Map<String, Integer>