当サイトは、アフィリエイト広告を利用しています
簡単な動作確認時にjavaのオブジェクトの中身を見たい時が多々あり
調べてみると表示させる方法があったのでメモ。
Personクラスを作成する
public class Person {private final int id;private final String name;private final String address;Person(int id,String name, String address) {this.id = id;this.name = name;this.address = address;}public int getId() {return this.id;}public String getName() {return this.name;}public String getAddress() {return this.address;}}
実行してログ出力する
import java.util.*;import java.util.stream.Collectors;public class Main {public static void main(String[] args) throws Exception {Person pobj = new Person(1,"TANAKA","東京");System.out.println(pobj);}}// 結果// Person@3fee733d
オブジェクトの中身が見えない...
ObjectクラスのtoString()メソッドが実行されているのが原因
PersonクラスでtoString()メソッドをオーバーライドする
public class Person {private final int id;private final String name;private final String address;private final int age;Person(int id,String name, String address,int age) {this.id = id;this.name = name;this.address = address;this.age = age;}public int getId() {return this.id;}public String getName() {return this.name;}public String getAddress() {return this.address;}public int getAge() {return this.age;}@Overridepublic String toString(){return "{" + this.id + " " + this.name + " " + this.address + this.age +"}";}}
再度実行してみると
{1 TANAKA 東京11}
javaの参考書などでtoStringメソッドをオーバーライドすることは見かけたこと多かったが
最近やっと意味がわかった...
javaの技術書としては下記が参考になりました。
java8のSteramAPIについても詳しく書かれているのでおススメです!