Pre Java 5集合和不愿意改变

non*_*tor 2 java collections

我们有几个区域可以看到这样的代码

public Map extractData(ResultSet rs) throws SQLException, DataAccessException {
        Map m = new HashMap();
            while(rs.next()){
                    Jurisdiction j = new Jurisdiction();
                    m.put("code",rs.getLong(1) );
                    m.put("type",rs.getString(2));
                    m.put("id",rs.getLong(3) )
            }
        return m;
        }
Run Code Online (Sandbox Code Playgroud)

哪作得很好.问题是我很难找到一个以"通用"的方式重写它的理由,如果我做了"真正的"好处Map<String,Object> m给了我(除了绑定String键)?

Ger*_*ima 6

类型安全,这主要意味着在编译期间检测错误.

这意味着更好的代码和更好的可维护性,因为对代码库的未来更改不太可能破坏某些东西.

但是:您是否应该重新编写代码只是您可以做出的决定.

如果现在一切正常,你就知道你的用户群(也许只有你;-)而且他们知道他们做了什么.....为什么要投入改变成本?还要考虑在进行更改时引入新错误和细微错误的可能性(尽管像IntelliJ IDEA这样的IDE支持有[generify]帮助).


Mic*_*ter 6

如果有代码的R读者,并且需要N毫秒来实现m Map<String,Object>,那么使用泛型将节省大约.R x N毫秒.随着时间的推移,这很重要.此外,您正在改进客户端的文档(使用真实的东西,而不仅仅是Javadoc).