簡體   English   中英

警告避免使用'HashMap'等實現類型;改為使用界面

[英]Warning Avoid using implementation types like 'HashMap'; use the interface instead

我在聲納上收到這個警告:

避免使用像'HashMap'這樣的實現類型; 改為使用界面

這是什么意思?

我收到此警告的類如下:

class A {
   private HashMap<String, String> map=new HashMap<String, String>();

   //getters and setters

}

請,我想要適當的解決方案,以避免在聲納上發出警告。

您應始終編碼到接口。 即。 在這種情況下,您應該聲明您的字段:

private Map<String, String> map= new HashMap<String, String>();

這樣使用map變量的任何東西都會將它視為Map類型而不是HashMap

這允許您在以后更換地圖的底層實現,而無需更改任何代碼。 您不再與HashMap綁定

仔細閱讀這個問題: “編程到界面”是什么意思?

另外我不知道你在做什么轉換成一Set嗎?

我不使用聲納,但警告基本上意味着什么

始終編​​程到接口而不是實現類

private Map<String, String> map= new HashMap<String, String>();
        Interface                    Implementing class

通常,您應始終針對接口而不是具體類型實現。 在這個例子中,它意味着你應該編寫你的代碼:

private Map<String, String> map= new HashMap<String, String>();

最大的優點是,您以后可以隨時更改Map的具體實現,而不會破壞代碼。

要獲得更多有關它的詳細信息,請查看以下問題: 當程序員說“代碼對接口而不是對象”時,他們的意思是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM