Java Tutorial/Apache Common/CompareToBuilder

Материал из Java эксперт
Перейти к: навигация, поиск

CompareTo Builder

   <source lang="java">

/*

* ========================================================================
* 
* Copyright 2005 Tim O"Brien.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* 
*   http://www.apache.org/licenses/LICENSE-2.0
* 
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* 
* ========================================================================
*/

import org.apache.rumons.lang.builder.rupareToBuilder; import org.apache.rumons.lang.builder.EqualsBuilder; import org.apache.rumons.lang.builder.HashCodeBuilder; import org.apache.rumons.lang.builder.ReflectionToStringBuilder; class BuilderBean implements Comparable {

 private String prop1;
 private String prop2;
 public String getProp1() {
   return prop1;
 }
 public void setProp1(String pProp1) {
   prop1 = pProp1;
 }
 public String getProp2() {
   return prop2;
 }
 public void setProp2(String pProp2) {
   prop2 = pProp2;
 }
 public String toString() {
   return ReflectionToStringBuilder.toString(this);
 }
 public boolean equals(Object pObject) {
   return EqualsBuilder.reflectionEquals(this, pObject);
 }
 public int compareTo(Object pObject) {
   return CompareToBuilder.reflectionCompare(this, pObject);
 }
 public int hashCode() {
   return HashCodeBuilder.reflectionHashCode(this);
 }

} public class MainClass {

 public static void main(String[] pArgs) throws Exception {
   // Builder and Builder2 contain the same content
   BuilderBean builder = new BuilderBean();
   builder.setProp1("One");
   builder.setProp2("Two");
   BuilderBean builder2 = new BuilderBean();
   builder2.setProp1("One");
   builder2.setProp2("Two");
   BuilderBean builder3 = new BuilderBean();
   builder3.setProp1("Uno");
   builder3.setProp2("Dos");
   System.out.println("builder compareTo builder2: " + builder.rupareTo(builder2));
   System.out.println("builder compareTo builder3: " + builder.rupareTo(builder3));
 }

}</source>



builder compareTo builder2: 0
builder compareTo builder3: -6