带有泛型参数的Java类仍然是POJO吗?

时间:2014-01-10 08:55:45

标签: java

示例:

class MyClass<S> {
}

以上课程是POJO吗?

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

  

在Endpoint方法中,返回值类型不能是简单类型,如String或int。返回值必须是POJO,数组或集合。

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

2 个答案:

答案 0 :(得分:2)

术语POJO(普通的旧java对象)在早期版本的J2EE(现在称为JEE)和Enterprise Java Bean(EJB)时变得流行。

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

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

作为这个POJO的对应点,旨在提供企业服务而不必扩展基类。 Spring为此使用了依赖注入和面向方面编程,并且很快变得流行,因为现在可以在繁重的应用服务器之外轻松地对类进行单元和集成测试。

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

答案 1 :(得分:1)

每个Java类都没有扩展预先指定的类,也没有实现预先指定的接口。另外,POJO(Plain Old Java Object)没有预先指定的注释。

这意味着您的示例是POJO。