[英]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.