본문 바로가기

아파치 Commons Lang 유익한 기능 활용법 [IBM DW 201009]

무슨 프로그램이든 글이든 보고 듣기엔 참 좋은 프로그램 또는 글인것 같은데 막상 활용해보자니 뭔가 두루뭉실하고 현실에 맞지 않는 것들이 있습니다. 저는 물론 간결하면서 바로 써먹을수 있는 프로그램이나 글이 좋습니다.

그런 의미에서 제가 좋아하는 바로 써먹을수 있는 실용적인 기사를 발견했습니다. 잠깐의 활용법만 알면 아파치 Commons Lang에서 제공하는 유틸리티 기능을 바로 써먹을 수 있습니다.

    * equals
    * hashCode
    * toString

이 3개의 메소드는 자바의 Object 클래스에서 제공하는 자주쓰는 메소드입니다. 특히 equals와 toString은 많이 쓰는 메소드죠~! 근데 보통 이 메소드들 그냥 쓰지만 가끔은 예를 들어 이런 상황이 생깁니다.

  Account acct1 = new Account(1, "Andrew", "Glover", "ajg@me.com", now);
  Account acct2 = new Account(1, "Andrew", "Glover", "ajg@me.com", now);

이 객체가 같은지 비교하고 싶을 경우 보통 우리 사람 입장? 에서는 두 객체의 각 인자들이 같은지를 비교하고 싶지만, 이 인자들의 구체적인 비교 로직을 equals에서 재정의 하지 않으면 컴퓨터는 우리 의도와는 맞지 않게 객체 포인터 주소나 비교할것입니다.

위의 객체처럼 인자가 많을 경우 equals로직을 재정의하는데 노력이 많이 필요하고 로직에 버그가 생길 가능성도 높아집니다. 이럴때 Commons Lang 클래스를 쓰면 깔끔하고 간단하게 해결됩니다. 자세한건 기사를 보세요. 잠깐만 봐도 바로 써먹을 수 있습니다.