我有一个类,它有一个集合:
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()
两次。