Javaでオブジェクトの中身を表示する方法(ToStringBuilder / ReflectionToStringBuilder)

技術
スポンサーリンク
スポンサーリンク

はじめに

こんにちは!さいけです。

今回は、「Javaでオブジェクトの中身を表示する方法」について紹介します。

Javaでオブジェクトの中身を表示する方法

ToStringBuilderもしくはReflectionToStringBuilderクラスのメソッドを利用すれば、オブジェクトの中身を表示することができます。

ただし、上記クラスを利用するには、依存関係を追加をしなければならないので追加してください。

依存関係を追加

pom.xml

<dependency> <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.9</version>
</dependency>

build.gradle

dependencies {
    compile('org.apache.commons:commons-lang3:3.9')
}

versionにこだわりがある人は、下記mvnrepositoryからよしなに選んでください\(^o^)/

Maven Repository: org.apache.commons » commons-lang3

つかってみる

今回は、ToStringBuilderクラスのreflectionToStringを利用して紹介します。

また、ReflectionToStringBuilderクラスの場合はtoStringメソッドで、上記と同等のことができます。

基本的には、第一引数に表示したいオブジェクト、第二引数に出力形式を指定します。

また、前提になりますが、下記のようなDTOがあり、nameにはtaro、ageには20が入っているものとします。

@Getter
@AllArgsConstructor
public class PersonResponse {

    private String name;

    private Integer age;
}

オブジェクトの中身を表示する(基本)

//com.example.springbootplayground.controller.resource.PersonResponse@361b3907[name=taro,age=20]
System.out.println(ToStringBuilder.reflectionToString(personResponse));

// com.example.springbootplayground.controller.resource.PersonResponse@361b3907[name=taro,age=20]
System.out.println(ToStringBuilder.reflectionToString(personResponse, ToStringStyle.DEFAULT_STYLE));

オブジェクトの中身を改行して表示する

// com.example.springbootplayground.controller.resource.PersonResponse@361b3907[
//  name=taro
//  age=20
// ]
System.out.println(ToStringBuilder.reflectionToString(personResponse, MULTI_LINE_STYLE));

オブジェクトの中身をフィールド名なしで表示する

// com.example.springbootplayground.controller.resource.PersonResponse@361b3907[taro,20]
System.out.println(ToStringBuilder.reflectionToString(personResponse,ToStringStyle.NO_FIELD_NAMES_STYLE));

オブジェクトの中身をパスなしで表示する

// PersonResponse[name=taro,age=20]
System.out.println(ToStringBuilder.reflectionToString(personResponse,ToStringStyle.SHORT_PREFIX_STYLE));

オブジェクトの中身を値のみで表示する

// taro,20
System.out.println(ToStringBuilder.reflectionToString(personResponse,ToStringStyle.SIMPLE_STYLE));

おわりに

今回はJavaでオブジェクトの中身を表示する方法について紹介しました。

デバック、ログを仕込む際に便利ですので、ぜひ参考に利用してみてください。

それでは\(^o^)/

コメント