【问题标题】:Is a Java class with a generic parameter still a POJO?带有泛型参数的 Java 类仍然是 POJO 吗?
【发布时间】:2014-01-29 03:49:43
【问题描述】:

例子:

class MyClass<S> {
}

上面的类是POJO吗?

编辑:这个问题已被搁置,所以让我进一步解释一下。首先,这个问题非常明确和准确。其次,我认为这很重要,因为许多文档都这样说(引用https://developers.google.com/eclipse/docs/endpoints-addentities 的谷歌文档):

在Endpoint方法中,返回值类型不能是String或int等简单类型。返回值需要是 POJO、数组或 Collection。

在这种情况下,我想确切地知道我可以使用哪些类,而不必经历繁琐的试错过程。

【问题讨论】:

  • 假设是。无论如何,POJO 不是一个官方术语。
  • 任何 java 类都是 POJO。提供 POJO 的正式含义是普通的旧 Java 对象。
  • @PrasadKharkar 好吧,这将其推向重言式。 POJO 确实意味着某事
  • @Floris 我添加了另一个答案来解释为什么你的课程是 POJO

标签: java


【解决方案1】:

POJO(plain old java object)这个词在 J2EE(现在称为 JEE)和 Enterprise Java Beans (EJB) 的早期版本开始流行。

EJB 试图通过提供企业服务抽象(例如数据库访问、安全性、消息传递)来扩展 Java bean 的可重用、组件驱动架构的理念。

不幸的是,这些早期尝试需要扩展只能在应用服务器上下文中使用的基类。这有很多问题,例如它使测试变得非常麻烦和缓慢的过程。

与此相反,出现了 POJO,其旨在提供企业服务而无需扩展基类。 Spring 为此使用了依赖注入和面向方面的编程,并迅速流行起来,因为类现在可以很容易地在繁重的应用程序服务器之外进行单元和集成测试。

POJO 背后的理念是,您的类应该从业务域而不是基础设施域扩展。因此,是的,只要 POJO 尊重这一理念,就没有理由不能使用泛型。

【讨论】:

    【解决方案2】:

    每个不扩展预先指定的类并且不实现预先指定的接口的 Java 类。 POJO(Plain Old Java Object)也没有预先指定的注解。

    这意味着您的示例是 POJO。

    【讨论】:

    • 请编辑您的答案以确认我的示例是 POJO,我会接受。
    • 抱歉忘了说你的例子是POJO..我编辑并确认了。
    猜你喜欢
    • 2017-10-06
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多