※当サイトの記事には、広告・プロモーションが含まれます。

JavaのDTOやEntityの全てのフィールドの値を文字列連結するには

www.itmedia.co.jp

⇧ あれだけヒット作を生み出しても倒産することになるとは、夢も希望もないですな...

ちなみに、アニメーションに関連する業務に従事している労働者の2023年度の実態調査によると、

www.janica.jp

⇧ 所謂、アニメーターに該当する、作画作業に従事する労働者の低賃金が目立ちますな。まぁ、サンプルが少ないので何とも言えないですが。

全体的な作画のクオリティは年々下がっているみたいですし、後継者不足にも拍車がかかっていそうなこともあり、将来的にはAIとかでアニメーションしていく流れになるんですかね?

JavaBeansの定義が曖昧ではありますが...

Wikipediaさんによりますと、

JavaBeans(ジャバ ビーンズ)とは、Javaで書かれた再利用可能なソフトウェアコンポーネントまたはその技術仕様のこと。1997年後半に登場。JDKjava.beansパッケージと共にRAD環境の構築を支援するために作られた。現在ではjava.beansパッケージの技術を活用し、RAD環境の構築に限らずJSP等幅広い用途で利用されている。

JavaBeans - Wikipedia

Beanの必要条件

など。

JavaBeans - Wikipedia

役割

java.util.Observablejava.beans.PropertyChangeSupportと組み合わせることでModel View ControllerMVC)ではModelに相当する役割をさせることができる。

JavaBeans - Wikipedia

⇧ とある。う~む、定義がファジーな感じっすな。

何となく、

yyyank.blogspot.com

⇧ Beanを大きな枠として、DTO(Data Transfer Object)やEntityなどを捉える感じになるんかな。

JavaDTOやEntityの全てのフィールドの値を文字列連結するには

で、DTO(Data Transfer Object)やEntityなどで、フィールドの数が多いときに、getterで値を取得して文字列連結するの面倒くさいな、何かい良い方法無いんかな、と思ってネット上の情報を漁っていたところ、

www.baeldung.com

⇧ 上記サイト様によりますと、Javaの標準APIのみで実現しようとすると、「リフレクション」を使わざるを得ないと。

外部ライブラリを使えば、「リフレクション」部分はライブラリが内部で実現してくれていると思うので隠蔽してくれてるような気がする。

「リフレクション」を使わないとなると、

  1. DTO(Data Transfer Object)やEntityのクラス内でtoString()メソッドをオーバーライドする
  2. DTO(Data Transfer Object)やEntityからMapに変換
  3. DTO(Data Transfer Object)やEntityからカンマ区切りの文字列に変換後、カンマを除去

のいずれかになってくるのかなと。

まぁ、2と3のアプローチは外部ライブラリ内で「リフレクション」を利用しているとは思うのだけど、利用する我々は意識しないで済むのかなと。

toString()メソッドをオーバーライドする方法は、結局、フィールドの数の分だけ文字列連結する作業が発生するので、フィールドの数が膨大だと辛いなと。

となってくると、Mapに変換して、ループ処理で文字列連結するのがコーディング的には楽そう。

Javaの標準APIでMap化する機能を用意してくれると嬉しいんですがね...

Spring Frameworkとかだと、

spring.io

⇧ Jacksonが必須みたいなので、Jacksonの機能でDTO(Data Transfer Object)やEntityなどからMapに変換するのが良いんかね?

Spring Bootとか使っている場合は、

docs.spring.io

The following table provides details of all of the dependency versions that are provided by Spring Boot in its CLI (Command Line Interface), Maven dependency management, and Gradle plugin. When you declare a dependency on one of these artifacts without declaring a version, the version listed in the table is used.

https://docs.spring.io/spring-boot/appendix/dependency-versions/coordinates.html

⇧ Spring Bootのバージョンと依存関係のライブラリのバージョンとか合わせる必要があるんかね?

いつも思うのは、Spring Frameworkのデフォルトで有効になっている依存関係がよく分からんのだよね...

どこまでを良しなに面倒見てくれるのかハッキリして欲しいんよな...

毎度モヤモヤ感が半端ない…

今回はこのへんで。