はじめに
こんにちは!さいけです。
今回は、「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^)/
コメント