我有不同類型的對象的LinkedHashSets從一個Java類傳遞到另一個,我是否將它們打包在一個更大的對象中(如果可能的話,還有另一個鏈接的哈希集),或者我只是以正常方式傳遞它們作爲參數?我可以擁有LinkedHashSets的LinkedHashSet嗎?
回答
兩者都是可能的。
如果包裝LinkedHashSet
s轉換爲其他LinkedHashSet
你可能失去類型信息LinkedHashSet<LinkedHashSet<?>>
是收集各種LinkedHashSet
S IN一個地方的唯一途徑。您也可以查看HashMap
,因爲您通常會嘗試訪問特定的子LinkedHashSet
;通過在常見的類或接口中定義常量查找鍵,使用映射可以輕鬆實現。
如果在類之間始終存在相同的LinkedHashSet
,參數或參數對象通常是更好的解決方案,因爲它們提供類型信息。一個參數對象的類可能看起來像這樣
public class Parameters {
private LinkedHashSet<String> namesSet = null;
private LinkedHashSet<Locale> localesSet = null;
public Parameters(LinkedHashSet<String> namesSet, LinkedHashSet<Locale> localesSet) {
this.namesSet = namesSet;
this.localesSet = localesSet;
}
public Parameters() {
}
public LinkedHashSet<String> getNamesSet() {
return namesSet;
}
public void setNamesSet(LinkedHashSet<String> namesSet) {
this.namesSet = namesSet;
}
public LinkedHashSet<Locale> getLocalesSet() {
return localesSet;
}
public void setLocalesSet(LinkedHashSet<Locale> localesSet) {
this.localesSet = localesSet;
}
}
參數對象的優點是它們保持方法簽名短,可以傳遞;在通過併發線程修改這些對象時要小心;-)。
是的。例如:
LinkedHashSet<LinkedHashSet<String>>
但它們並不都是LinkedHashSet
如果你有一個共同的超類或接口,你總是可以使用Object或其他類。 – JustinKSU
- 1. 我可以擁有沒有聚集索引的主鍵嗎?我也可以擁有多值聚簇索引嗎?
- 2. 我們可以在Flash中擁有4個以上的stage3D嗎?
- 3. 我可以擁有一個沒有值的JavaScript對象鍵嗎
- 4. 如果我不擁有sharepoint,我可以利用Sharepoint dll嗎?
- 5. 我可以擁有可以從切片和擁有緩衝區構建的結構嗎?
- 6. 我可以擁有TFS的非SharePoint門戶嗎?
- 7. 我們可以擁有2個元素的相同ID嗎?
- 8. 我可以擁有佈局的多佈局方向嗎?
- 9. 我可以在AngularJS中擁有一些不變的頁面嗎?
- 10. 我可以擁有IUserType實例的集合嗎?
- 11. 我可以擁有比列更多的候選鍵嗎?
- 12. iOS:我可以擁有基於位置的啓動屏幕嗎?
- 13. 我可以擁有OS X和tvOS的跨平臺框架嗎?
- 14. 我可以擁有2個不同的DN區域嗎?
- 15. 我可以擁有RequireJS模塊的多個實例嗎?
- 16. 我可以擁有多個領域文件嗎?
- 17. 我可以在Active Admin資源中擁有靜態頁面嗎?
- 18. SA:對於Date列,我可以擁有'年份'column_property嗎?
- 19. 我可以在Laravel擁有web和api衛兵嗎?
- 20. 我可以擁有300個或更多站點地圖嗎?
- 21. 我可以在Kafka Cluser中擁有數千個主題嗎?
- 22. Ruby on Rails和WebSphere我可以同時擁有兩者嗎?
- 23. 我可以同時擁有Controller和ApiController嗎?
- 24. 我可以擁有每個項目Yeoman發電機嗎?
- 25. 我可以在IotAgent-UL和OrionCB中擁有多值屬性嗎?
- 26. 表單身份驗證:我可以擁有多個loginUrl嗎?
- 27. 我可以在Finally塊中擁有業務邏輯嗎?
- 28. 我可以擁有多種facebook護照策略嗎?
- 29. 我可以擁有多個GOPATH目錄嗎?
- 30. 我可以在$ rootScope中擁有$ scope值嗎?
我採用了參數類解決方案:) –