我已閱讀有效的Java它強調在可能的情況下使用接口作爲返回類型。擴展論點我想知道以下哪種方法是首選/被認爲是一種好的做法。應該將接口用於類型參數
OPTION 1:
Map<Integer, Set<Integer>> map = new HashMap<Integer, Set<Integer>>(); // Interface 'Set' declared in type
for (int v = 0; v < graph.getNumberOfVertices(); v++) {
map.put(v, new HashSet<Integer>());
}
選項2:
Map<Integer, Set<Integer>> map = new HashMap<Integer, HashSet<Integer>>(); // Class 'HashSet' declared in type.
for (int v = 0; v < graph.getNumberOfVertices(); v++) {
map.put(v, new HashSet<Integer>());
}
那麼,如果您要從方法返回該映射,那麼接口更喜歡的規則仍然適用。 – Kayaman
那麼,第二個不編譯,雖然... –
前者更一般,所以除非你有一個很好的理由不,我寧願這種方法。 – assylias