问题标签 [pojo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2419 浏览

java - 动态创建 Java Pojo

如何在运行时创建 Java Pojo?这需要 ASM 或 BCEL 吗?

我正在读取一个 XML 文件,我想根据这个 xml 生成 Pojo。

0 投票
2 回答
13214 浏览

java - 生成地图来自 POJO

我有一个 POJO,和一个(当前尚未构建的)类,它将返回它的列表。我想自动生成 POJO 作为 Map 访问所需的代码。这是一个好主意吗,是否可以自动执行,我是否需要为要以这种方式处理的每个 POJO 手动执行此操作?

谢谢,安迪

0 投票
4 回答
539 浏览

java - 这些是同义词,彼此的子集还是完全不同?

问题标题中提到的概念在一定程度上是同义词吗?主要区别在哪里(上下文,结构,...),可以将一个视为另一个的子集吗?以下是来自维基百科的一些简短定义。

POJO(普通旧 Java 对象) 维基百科

在计算软件中,POJO 是 Plain Old Java Object 的首字母缩写。该名称用于强调给定对象是普通 Java 对象,而不是特殊对象,尤其不是 Enterprise JavaBean。该术语由 Martin Fowler、Rebecca Parsons 和 Josh MacKenzie 在 2000 年 9 月创造:

Java Bean 维基百科

JavaBean 是 Java 的可重用软件组件,可以在构建器工具中进行可视化操作。实际上,它们是用符合特定约定的 Java 编程语言编写的类。它们用于将许多对象封装到单个对象(bean)中,以便它们可以作为单个 bean 对象而不是多个单独的对象传递。JavaBean 是可序列化的 Java 对象,具有空构造函数,并允许使用 getter 和 setter 方法访问属性。

值对象 维基百科

数据传输对象 (DTO),以前称为值对象或 VO,是一种用于在软件应用程序子系统之间传输数据的设计模式。DTO 通常与数据访问对象结合使用以从数据库中检索数据。

业务对象 维基百科

业务对象是一种可理解的实体,是 n 层面向对象计算机程序中业务层内部的参与者。

有关的:

DTO、VO、POJO、JavaBeans 的区别? JavaBean 和 POJO 有什么区别? DDD:实体和值对象的区别有什么用?

0 投票
3 回答
883 浏览

java - Java RMI:如何传递 POJO

我成功创建了 RMI 服务和客户端。我可以调用方法等等。但现在我想尝试以下方法:我希望在服务上托管一个标准的 Java 对象,如 LinkedList。此外,我想“假装”我已经拥有使用 LinkedList 的现有代码。我想要的是获得一个实际上由服务管理的 LinkedList,但我可以像普通的 LinkedList 一样在本地访问它。最重要的是,我想做一些最小的日志记录,比如如果 .add() 被调用,它会在服务器上写入:“添加调用”。

这不是为了生产,只是为了帮助我理解它是如何工作的!

到目前为止,我已经尝试了很多东西。最有希望的是我创建了一个扩展 LinkedList 并实现 Remote 的类。此类尝试在构造函数中向 Registry 注册自己,如下所示:

try {

UnicastRemoteObject.exportObject((Remote)this); Naming.rebind("theList", (Remote)this); } catch (Exception e) { System.out.println("fail"); System.out.println(e.getMessage()); }

我必须这样做,因为我需要扩展 LinkedList,因此我无法扩展 UnicastRemoteObject。

当我尝试在服务器端运行它时得到的输出:

在客户端:

提前致谢!

0 投票
4 回答
385 浏览

java - How to "slice" a POJO

I'm borrowing the "slice" meaning from C++.

Let's say I hava a simple POJO that's persisted via Hibernate:

Now, when I retrieve an object from the database I know it was "instrumented" by Hibernate (its real class is a Person-derived generated automatically). I want to convert it back to a "plain" person object. Tnat would be used, for instance, to submit the object to XStream and have the result containing only what Person contains.

I could do it by defining a copy constructor, but I don't want to have the hassle of having to write copy constructors for every ORM class (not to mention the violation of DRY principle).

So I was wondering if

a) is there already a Java lib that does it? b) If not, would it be practical to write one using reflection?

In case of (b), any recomendations/guidelines/code skeletons would be appreciated.

0 投票
9 回答
41560 浏览

java - 普通旧 Java 对象 (POJO) 是什么意思?

术语普通旧 Java 对象 (POJO)是什么意思?我找不到任何足够解释的东西。

POJO 的维基百科页面说 POJO 是一个普通的 Java 对象,而不是一个特殊的对象。现在,在 Java 中什么使或不使和对象特别?

上面的页面还说 POJO 不应该扩展预先指定的类,实现预先指定的接口或包含预先指定的注释。这是否也意味着 POJO 不允许实现类似的接口SerializableComparable或类似 Applets 的类或任何其他用户编写的类/接口?

另外,上述政策(不扩展,不实施)是否意味着我们不允许使用任何外部库?

POJO 到底在哪里使用?

编辑:更具体地说,我是否允许扩展/实现属于 Java 或任何外部库的类/接口?

0 投票
7 回答
16209 浏览

java - 为什么我不应该使用不可变 POJO 而不是 JavaBean?

我现在已经实现了一些 Java 应用程序,到目前为止只有桌面应用程序。我更喜欢使用不可变对象在应用程序中传递数据,而不是使用带有 mutator(setter和 getter)的对象,也称为 JavaBeans。

但是在 Java 世界中,使用 JavaBeans 似乎要普遍得多,我不明白为什么要使用它们。就个人而言,如果它只处理不可变对象而不是一直改变状态,那么代码看起来会更好。

在Item 15: Minimize mutability , Effective Java 2ed中也推荐不可变对象。

如果我有一个Person作为JavaBean实现的对象,它看起来像:

同样Person实现为不可变对象:

或者更接近structC 中的一个:

我也可以在不可变对象中使用 getter 来隐藏实现细节。但由于我只使用它作为struct我更喜欢跳过“getters”,并保持简单。

简单地说,我不明白为什么使用 JavaBeans 更好,或者我是否可以并且应该继续使用我的不可变 POJO?

许多 Java 库似乎对 JavaBeans 有更好的支持,但是随着时间的推移,对不可变 POJO 的更多支持可能会变得越来越流行?

0 投票
2 回答
883 浏览

spring - 是否考虑过 POJO Servlet?

POJO 是 Spring 中的规范,但在 Java EE 世界中也很普遍。一个非 POJO 的据点是 Servlet。我想知道是否有任何开源呼吁改变。

POJO 示例:

类 MyHttpServlet { @Inject void doGet(@HttpServletRequest 请求请求,@HttpServletResponse 响应响应){..} }

类 MyOtherServlet { @Inject void doOther(@OtherServletRequest 请求请求,@OtherServletResponse 响应响应){..} }

类 MyOneWayServlet { @Inject void doOneWay (@OneWayServletRequest 请求请求) {..} }

......

也许这一切都是关于如何务实地制作 POJO/SoC/松耦合。

Spring 对 EJB2.x 的采用直接取代了它,后者后来产生于 EJB3.x,但在 Servlet 上添加了一个 MVC 层(就像其他 Web 框架一样)。

最初,我问是否有人设想过 Servlet 的激进方式。在我看来,答案显然没有。

0 投票
11 回答
144679 浏览

java - 如何创建 POJO?

最近我开始听说“POJO”(Plain Old Java Objects)。我用谷歌搜索了它,但仍然不太了解这个概念。谁能给我一个POJO的清晰描述?

考虑一个带有变量“id、name、address、salary”的类“Person”——我将如何为这个场景创建一个 POJO?下面的代码是 POJO 吗?

0 投票
1 回答
4509 浏览

java - 如何将数据存储在从数据库收集的对象数组中?

在这里,我已经编码以从 DB 获取数据。我想将数据存储在对象数组(POJO)中。怎么做? 此代码也可以将数据插入 DB,但省略它。