gpt4 book ai didi

java - 公开不同通用类型的不可修改的列表包装器

转载 作者:行者123 更新时间:2023-12-04 20:35:45 27 4
gpt4 key购买 nike

我有一个 List<ParentObject>其中 ParentObject定义为:

public class ParentObject
{
ChildObject child1;
// and other stuff...
}

我想揭露 List<ParentObject>对其他人来说是不可修改的 List<ChildObject>通过构建包装器列表:

public class WrapperList implements List<ChildObject>
{
List<ParentObject> delegateList;

public WrapperList( List<ParentObject> delegateList )
{
this.delegateList = delegateList;
}

// fill in java.util.List methods...
}

我可以采用这种方法并让它发挥作用,但这似乎是一个可能已经普遍解决的问题。是否有像我提议的那样提供列表包装器的现有库?大概我会定义一个翻译方法告诉包装器列表如何检索 ChildObject来自给定的 ParentObject .

基本问题是:这是一个好方法还是有一个库(Guava 或 Apache Commons Collections 或其他)已经提供了类似的东西?

最佳答案

使用 Guava 最简单的方法是

return Collections.unmodifiableList(Lists.transform(parentList,
new Function<ParentObject, ChildObject>() {...}));

(披露:我为 Guava 做出贡献。)

关于java - 公开不同通用类型的不可修改的列表包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10031062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com