使用龙目岛添加列表的方法

2022-09-04 22:34:50

我目前正在替换所有标准POJO,以使用龙目岛作为所有样板代码。

到目前为止,还没有发生任何问题,但我在lombok实现中缺少的是,没有生成的方法可以将一个对象添加到集合中。

生成的代码:

private List<Object> list = new ArrayList<>();

public Object getObject(){..}

public void setObject(List<Object> o){..}

我想要额外的:

public void addObject(Object o) {..}

有谁知道这是否很快就会到达那里,或者这是否是不可能的?


答案 1

1)我找不到它的票证,并且,根据对另一个答案的评论,我提交了一个:https://github.com/rzwitserloot/lombok/issues/1905 所以让我们看看:)

2)对于单个集合,似乎可以完成这项工作:@Delegate

interface CollectionAdders<E> {
  boolean add(E e);
  boolean addAll(Collection<? extends E> c);
}

interface ListGetters<E> {
  E get(int index);
}

class Foo {
  @Delegate(types={CollectionAdders.class, ListGetters.class})
  List<String> names = new ArrayList<>();
}

生成:

Foo#add(E e)
Foo#addAll(Collection<? extends E> c)

Foo#get(int index)

看到这个论坛帖子: https://groups.google.com/forum/#!topic/project-lombok/alektPraJ_Q


答案 2

这在目前肯定是不可能的。有这样的建议,但优先级低(甚至被拒绝)。

实际上,我再也找不到它了。您可能想在问题列表中尝试一下。

现在,我偶然发现了这个线程,它显示了一个有趣的解决方法,仅限于单个变量。

坏消息

这在不久的将来不太可能实现。有太多的功能请求来实现和维护它们(或它们中的任何非平凡部分)。请参阅此问题注释


推荐