坦率地说,我离成为泛型专家还很远,我必须重构一些代码。我有三个子类:D类、R类和S类。这些类中的每一个都扩展类AbstractA。子类的目标非常相似,每个子类在方法m()中都有相似的代码。所以我认为如果我可以从子类中提取方法 m() 并将其替换为上一层(到类 AbstractA 中),那也不错。
但是有一些区别:
D 类适用于:
Map<String, Map<BigInteger, BigInteger>> counts = new HashMap<String, Map<BigInteger,BigInteger>>();
Map<String, Map<BigDecimal, Set<BigInteger>>> sums = new HashMap<String, Map<BigDecimal, Set<BigInteger>>>();
R类适用于:
Map<String, Map<String, BigInteger>> counts = new HashMap<String, Map<String,BigInteger>>();
Map<String, Map<BigDecimal, Set<String>>> sums = new HashMap<String, Map<BigDecimal, Set<String>>>();
S 类适用于:
Map<String, Map<BigInteger, BigInteger>> counts = new HashMap<String, Map<BigInteger,BigInteger>>();
Map<String, Map<BigDecimal, BigInteger>> sums = new HashMap<String, Map<BigDecimal, BigInteger>>();
欢迎任何关于上述泛型的可能修改的提示,这可能会导致更“通用”的版本。(可以移动到类 AbstractA 并且仍然可以由三个子类使用。)