Lombok惰性getter用于可变集合



我有一个类,它有一个集合:

public class Foo
{
    @Inject
    private BarManager barManager;
    @Getter(lazy = true)
    private final List<Bar> bars = barManager.getAll();
    public void addBar(Bar bar)
    {
        bars.add(bar);
    }
}

但是,我无法向List添加元素/从中删除元素。原因是该属性是AtomicReference。警告/错误为:

The method add(Employee) is undefined for the type  AtomicReference<AtomicReference<List<Employee>>>

如何对集合执行添加/删除操作?

您的解决方案确实很奇怪,并且取决于一些实现细节。此外,如果字段尚未初始化,它将与NPE断开。正确的解决方案始终有效:

getBars().add(bar);

免责声明:此答案,尤其是评论,仅供参考。请使用上面接受的答案而不是这个


我不会想到自己这么快就能解决的。解决方案相当奇怪:

public class Foo
{
    @Inject
    private BarManager barManager;
    @Getter(lazy = true)
    private final List<Bar> bars = barManager.getAll();
    public void addBar(Bar bar)
    {
        bars.get().get().add(bar);
    }
}

get()返回引用,但是由于某种原因,我不得不调用get()两次。

最新更新