자바에서 Pojomatic을 이용해 객체 내용 출력하기 – var_dump나 print_r처럼

나는 주로 PHP 개발을 한다. 물론 JAVA 개발도 한다. PHP에는 디버그 툴로 print_r이나 var_dump 같은 함수가 있다. xdebug 같은 확장을 이용하면 출력도 깔끔하다.

JAVA에는 그런 게 없다. 물론 이클립스를 이용해 객체를 디버그할 수 있지만, 불편하다.

좀 번거롭지만, toString() 메서드를 오버라이드할 수 있는 방법이 있다. 이렇게 하면 print_r 함수를 사용한 것처럼 객체 내용을 출력한다. Pojomatic 라이브러리를 사용한다.

만약 메이븐을 사용한다면, pom.xml에 아래처럼 의존성을 추가해 준다.

<dependency>
    <groupId>org.pojomatic</groupId>
    <artifactId>pojomatic</artifactId>
    <version>1.0</version>
</dependency>

PostVo.java처럼 내용을 출력하기 원하는 객체에 Pojomatic을 임포트하고, 클래스 위에 @AutoProperty 어노테이션을 넣어 준다.

import org.pojomatic.Pojomatic;
import org.pojomatic.annotations.AutoProperty;

@AutoProperty
public class PostVO { ... }

그리고 아래처럼 toString 메서드를 덮어 쓴다.

@Override
public String toString() {
    return Pojomatic.toString (this);
}

hashCode()equals(Object o) 메서드도 덮어 쓸 수 있다.

@Override
public boolean equals(Object o) {
    return Pojomatic.equals (this, o);
}

@Override
public int hashCode() {
    return Pojomatic.hashCode (this);
}

이렇게 하고 나면, 아래처럼 코드를 쓸 수 있고, 결과도 아래처럼 나온다.

System.out.println(new Person("John", "Doe", 32).toString());

// result: Person{firstName: {John}, lastName: {Doe}, age: {32}}

흔히 사용하는 log4j에서 logger.debug("{}", vo) 식으로 사용할 수도 있다.

카테고리

, ,

17년차 풀스택 웹 개발자 Mytory입니다

웹 개발에서도 중요한 것은 개념입니다.
이 블로그에는 제가 개발하며 익힌 개념들을 정리합니다.

워드프레스를 오래 다뤄 왔고 강의도 두 편 찍었습니다.
– 인프런 “워드프레스 제대로 개발하기 어드민 편, 클라이언트 편
– 클래스101 “누구나 할 수 있는 워드프레스 홈페이지 만들기 – 기획부터 출시까지 한 방에 OK

유튜브 채널에 워드프레스 관련 팁들을 올리고 있습니다.

👉 소개 더 보기

대표글

댓글 남기기