java - 使用辅助类使 JavaBean 的使用更加方便——这是某种习惯用法吗?

标签 java javabeans idioms

在工作中,我经常需要处理大量使用 JavaBean 的第三方库。因为使用 JavaBeans(尤其是创建)非常乏味并且违反了干燥(大量复制),所以我经常编写一个辅助类,以便能够以更“类似 oo”的方式创建 JavaBeans(即,将所有需要的信息传递到构造函数中) ),像这样

// left out the implementation of the method, just to give an idea
public class MyBean {
  public MyBean();

  public void setFoo(String foo);
  public void setBar(String bar);
}

public MyBeans {
  public static MyBean newMyBean(String foo, String bar);
}

现在,通过使用静态导入,我可以:

MyBean bean = newMyBean(foo, bar);

而不是:

MyBean bean = new MyBean();
bean.setFoo(foo);
bean.setBar(bar);

这是某种习惯用法吗?有什么缺点吗(我知道,静态导入有点争议),有没有 Maven 插件可以为我生成这些帮助器类?

最佳答案

据我所知,没有任何 Maven 插件可以为您创建这些工厂,但它是一个简单的代码生成库。它需要可配置来创建给定类的各种工厂,您想要设置哪些属性,但必须考虑类的具体信息。

由于配置需要(无论如何,正如我所见),我从来没有费心将我的实现包装到 Maven 插件中。我手动生成它们(以及流畅的界面选项),并且再也不会考虑它们。

在我看来,它们通常需要人工干预,因此不值得对这个过程进行 Maven 化。只需将它们生成到普通的 src/main/java 树中,并假装它们是您自己编写的。

关于java - 使用辅助类使 JavaBean 的使用更加方便——这是某种习惯用法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8113908/

相关文章:

java - 如何在 spring DriverManagerDataSource 上设置超时

java - Android 中的 "foreign application"是什么?

javabeans - 两台机器 JVM 之间带有 Ignite 集群的集群 vertx 事件总线

java - OpenCSV:将嵌套 Bean 映射到 CSV 文件

python - 避免在 Python 中进行不必要的切片复制

c++ - 类型向量化的适当通用习惯用法?

c# - Java和C#传值区别

java - com.kami2017.app.MainActivity.onCreate上的Android Studio错误

java - 在 Eclipse 上学习 Java(专注于企业)的好书

c - 再执行一次 while 循环的标准用法