我有不同类型的对象的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值吗?
我采用了参数类解决方案:) –