1

我有一个有一个集合的类:

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>>>

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

4

2 回答 2

3

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

getBars().add(bar);
于 2012-08-28T17:06:19.547 回答
1

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


没想到自己这么快就解决了。解决方案相当奇怪:

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()两次。

于 2012-08-28T13:47:37.840 回答