import org.apache.commons.lang3.*; public class Test { private String name; private int size; public Test(String name,int size) { Validate.notBlank(name,"name degeri bos"); Validate.isTrue(size>0,"size 0 dan buyuk olmalı"); setName(name); setSize(size); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } public static void main(String[] args) { Test t=new Test("", 123); } }
import org.apache.commons.lang3.builder.*; public class Test { private String name; private int size; public Test(String name,int size) { setName(name); setSize(size); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } @Override public String toString() { return ToStringBuilder.reflectionToString(this); } public static void main(String[] args) { Test t=new Test("Ad1", 123); System.out.println(t); } }Yukarıdaki Test class'ının toString'i override edilmiş ve ToStringBuilder kullanılmıştır. Aynı class'ın için bir main koyarak test yapılmıştır. Uygulama çalıştırıldığında aşağıdaki gibi bir çıktı verecektir :
Test@390ede48[name=Ad1,size=123]
import org.apache.commons.lang3.builder.*; public class Test { private String name; private int size; public Test(String name,int size) { setName(name); setSize(size); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } @Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } public static void main(String[] args) { Test t=new Test("ali", 112); Test t2=new Test("veli", 112); System.out.println("t hash code:"+t.hashCode()); System.out.println("t2 hash code:"+t2.hashCode()); } }Class'ta hem hashCode override edilmiş ve apache HashCodeBuilder class'ı kullanılmıştır. Ekrana üretilen hashcode'lar bastırılmıştır. Uygulama çalıştırıldığında aşağıdak gibi bir çıktı vermektedir :
t hash code:3600175 t2 hash code:133809909
Java projelerinizde her zaman Apache Commans projelerini kullanın. Apache commons'taki class'larda var olan class'ları kendiniz yapmayınız. Bugün bir çok java projesi temel olarak bu kütüphaneyi kullanmaktadır
Java'da bir class'ta equals ve hashCode methodlarını override (üzerine yazma) için Apache Commons Lang paketindeki ToStringBuilder ve HashCodeBuilder class'larını kullanabilirsiniz