Java 使用lombok为列表添加方法
我目前正在替换我所有的标准POJO,以便在所有样板代码中使用Lombok 到目前为止还没有出现任何问题,但我在lombok实现中缺少的是,没有生成用于将一个对象添加到集合的方法 生成的代码:Java 使用lombok为列表添加方法,java,lombok,Java,Lombok,我目前正在替换我所有的标准POJO,以便在所有样板代码中使用Lombok 到目前为止还没有出现任何问题,但我在lombok实现中缺少的是,没有生成用于将一个对象添加到集合的方法 生成的代码: private List<Object> list = new ArrayList<>(); public Object getObject(){..} public void setObject(List<Object> o){..} 有人知道这是很快就会实现还是
private List<Object> list = new ArrayList<>();
public Object getObject(){..}
public void setObject(List<Object> o){..}
有人知道这是很快就会实现还是不可能实现吗?目前这肯定是不可能的。有这样一个提议,但优先级很低(甚至被拒绝) 事实上,我再也找不到了。你可能想试试自己的衣服 现在,我无意中发现了一个有趣的解决方案,仅限于一个变量 坏消息 这在不久的将来很难实现。有太多的特性请求来实现和维护它们(或者它们中的任何一部分)。看。1)我找不到它的罚单,根据对另一个答案的评论,我提交了一张:让我们看看:) 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<>();
}
interface CollectionAdders{
布尔加法(E);
布尔加法(收集完整披露:我是龙目山的开发者之一。这在我们的名单上,但我不认为有什么问题。但这在我们自己的愿望清单上很高。我们正在考虑不同的方法,并定期自己讨论这些方法。如果我们有一个像样的建议,我们会向谷歌集团发送一封邮件。万一有人发现这一点。如果您不介意使用生成器,您可以使用annotation@rsavchenko这正是我的要求。谢谢!所以使用生成的getter-它返回您的列表-然后进行添加。如果您不喜欢它-您可以始终包装在自己的类中并向其添加方法。Lombok的功能@Singular
正是您想要的。更新2021:我对Kotlin很满意,它减少了Lombok所针对的几乎所有样板代码。不要害怕语言转换-与Java的兼容性非常全面,我在cca学习了Kotlin 1周。这很有趣,感谢关于这个问题的更新:-)不幸的是,罗尔·斯皮尔克对此不屑一顾,他指出存在@Builder
和@Singular
,这两个词在国际海事组织中并不包括对集合操纵器的速记。你可以去那里投票:)由于泛型,这似乎对我不起作用,因为@Delegate
没有指定泛型类型的方法,所以它将默认为Object。
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)