問題タブ [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.
java - Java Pojo を動的に作成する
実行時に Java Pojo を作成するにはどうすればよいですか? これには ASM または BCEL が必要ですか?
XML ファイルを読み込んでおり、この xml に従って Pojo を生成したいと考えています。
java - マップの生成POJOから
私はPOJOと、そのリストを返す(現在はまだ構築されていない)クラスを持っています。POJO に Map としてアクセスするために必要なコードを自動的に生成したいと考えています。これは良い考えですか?自動的に行うことは可能ですか?この方法で処理したいすべての POJO に対して手動でこれを行う必要がありますか?
ありがとう、アンディ
java - これらは同義語ですか、相互のサブセットですか、それとも完全に異なりますか?
質問のタイトルで言及されている概念は、ある程度同義ですか?主な違いはどこにあり(コンテキスト、構造など)、あるものを別のサブセットと見なすことができますか?ウィキペディアから抜粋した簡単な定義を次に示します。
POJO(Plain Old Java Object) Wikipedia
コンピューティングソフトウェアでは、POJOはPlain OldJavaObjectの頭字語です。この名前は、特定のオブジェクトが通常のJavaオブジェクトであり、特別なオブジェクトではなく、特にEnterpriseJavaBeanではないことを強調するために使用されます。この用語は、2000年9月にマーティンファウラー、レベッカパーソンズ、ジョシュマッケンジーによって造られました。
Java BeanWikipedia
JavaBeansは、ビルダーツールで視覚的に操作できるJava用の再利用可能なソフトウェアコンポーネントです。実際には、これらは特定の規則に準拠したJavaプログラミング言語で記述されたクラスです。これらは、多くのオブジェクトを単一のオブジェクト(Bean)にカプセル化するために使用されるため、複数の個別のオブジェクトとしてではなく、単一のBeanオブジェクトとして渡すことができます。JavaBeanは、シリアライズ可能で、nullaryコンストラクターを持ち、getterメソッドとsetterメソッドを使用してプロパティにアクセスできるJavaオブジェクトです。
値オブジェクト ウィキペディア
以前は値オブジェクトまたはVOと呼ばれていたデータ転送オブジェクト(DTO)は、ソフトウェアアプリケーションサブシステム間でデータを転送するために使用されるデザインパターンです。DTOは、データベースからデータを取得するために、データアクセスオブジェクトと組み合わせて使用されることがよくあります。
ビジネスオブジェクト ウィキペディア
ビジネスオブジェクトは、n層のオブジェクト指向コンピュータプログラムのビジネス層内のアクターである理解可能なエンティティの一種です。
関連している:
DTO、VO、POJO、JavaBeansの違いは? JavaBeanとPOJOの違いは何ですか? DDD:エンティティと値オブジェクトの違いの使い方は何ですか?
java - Java RMI:POJOを渡す方法
RMIサービスとクライアントを正常に作成しました。メソッドなどを呼び出すことができます。しかし今、私は次のことを試してみたかったのです。LinkedListのような標準のJavaオブジェクトをサービスでホストしたかったのです。また、LinkedListを使用する既存のコードを「ふり」したかったのです。私が欲しいのは、実際にはサービスによって管理されているLinkedListを取得することですが、通常のLinkedListと同じようにローカルでアクセスできます。その上、.add()が呼び出された場合、サーバーに「Addcalled」と書き込むなど、最小限のロギングを実行したいと思います。
これは本番用ではなく、動作を理解するのに役立ちます。
これまで私はたくさんのことを試しました。最も有望なのは、LinkedListを拡張し、Remoteを実装するクラスを作成したことです。このクラスは、次のようにコンストラクターのレジストリに自分自身を登録しようとします。
try {
UnicastRemoteObject.exportObject((Remote)this);
Naming.rebind("theList", (Remote)this);
}
catch (Exception e) {
System.out.println("fail");
System.out.println(e.getMessage());
}
LinkedListを拡張する必要があるため、これを行う必要があります。したがって、UnicastRemoteObjectを拡張できません。
サーバー側でこれを実行しようとすると、次の出力が得られます。
そしてクライアント側では:
前もって感謝します!
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.
java - Plain Old Java Object (POJO) の意味は何ですか?
Plain Old Java Object (POJO)という用語は何を意味しますか? 十分に説明できるものは見つかりませんでした。
POJO のウィキペディア ページには、POJO は通常の Java オブジェクトであり、特別なオブジェクトではないことが記載されています。では、Java でオブジェクトを特別にするものとしないものは何でしょうか?
上記のページでは、POJO は事前に指定されたクラスを拡張したり、事前に指定されたインターフェイスを実装したり、事前に指定された注釈を含めたりする必要はないと述べています。これは、POJO がのようなインターフェースや、アプレットのようなクラスSerializable
、Comparable
またはその他のユーザー作成のクラス/インターフェースを実装することを許可されていないということでもありますか?
また、上記のポリシー (拡張なし、実装なし) は、外部ライブラリの使用が許可されていないことを意味しますか?
POJO は正確にはどこで使用されますか?
編集:より具体的に言うと、Java または外部ライブラリの一部であるクラス/インターフェースを拡張/実装することは許可されていますか?
java - JavaBeans の代わりに不変の POJO を使用すべきではないのはなぜですか?
現在、いくつかの Java アプリケーションを実装していますが、これまでのところデスクトップ アプリケーションのみです。私は、JavaBeans とも呼ばれるミューテーター (セッターとゲッター)を持つオブジェクトを使用する代わりに、アプリケーション内でデータを渡すために不変オブジェクトを使用することを好みます。
しかし、Java の世界では、JavaBeans を使用する方がはるかに一般的であるように思われますが、代わりに JavaBeans を使用する必要がある理由がわかりません。個人的には、常に状態を変更するのではなく、不変オブジェクトのみを処理する方がコードの見栄えが良くなります。
不変オブジェクトは、項目 15: 可変性を最小化する、Effective Java 2edにも推奨されています。
JavaBeanPerson
として実装されたオブジェクトがある場合、次のようになります。
そして、不変オブジェクトPerson
として実装されたものと同じです:
struct
またはCのに近い:
実装の詳細を隠すために、不変オブジェクトにゲッターを含めることもできます。しかし、私はそれを単に使用するだけなのでstruct
、「ゲッター」をスキップして単純にすることを好みます。
簡単に言えば、JavaBeans を使用する方が良い理由がわかりません。また、不変の POJO を使用し続けることができるかどうか、またそうする必要があるかどうかもわかりません。
Java ライブラリの多くは JavaBeans をより適切にサポートしているように見えますが、不変の POJO のサポートが徐々に普及していくのではないでしょうか?
spring - POJO サーブレットは考慮されていますか?
POJO は Spring の標準ですが、Java EE の世界にも普及しています。非 POJO の 1 つの拠点はサーブレットです。変化に訴えるオープンソースがあるかどうか疑問に思っています。
POJO の例:
class MyHttpServlet { @Inject void doGet (@HttpServletRequest リクエスト リクエスト、@HttpServletResponse レスポンス レスポンス) {..} }
class MyOtherServlet { @Inject void doOther (@OtherServletRequest リクエスト リクエスト、@OtherServletResponse レスポンス レスポンス) {..} }
class MyOneWayServlet { @Inject void doOneWay (@OneWayServletRequest Request リクエスト) {..} }
.....
おそらく、POJO/SoC/疎結合を実用的に作成する方法がすべてです。
Spring の EJB2.x への取り組みは、後で EJB3.x に移行するものをそのまま置き換えますが、サーブレットでは (他の Web フレームワークが行っているように) 上に MVC レイヤーを追加します。
もともと私は、誰かがサーブレットで急進的な方法を想像したかどうかを尋ねていました。答えは明らかにないように思えます。
java - POJOを作成する方法は?
最近、「POJO」(Plain Old Java Objects)について聞き始めました。私はそれをグーグルで検索しましたが、それでも概念をよく理解していません。誰かがPOJOの明確な説明を教えてもらえますか?
変数「id、name、address、salary」を持つクラス「Person」について考えてみます。このシナリオのPOJOをどのように作成しますか?以下のコードはPOJOですか?
java - データベースから収集したオブジェクト配列にデータを格納する方法は?
ここでは、DB からデータを取得するようにコーディングしました。オブジェクト配列(POJO)にデータを格納したい。どうやってするの? このコードは DB にデータを挿入することもできますが、省略します。