All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.samples.java.ex.CSBTS_StringToStringSample Maven / Gradle / Ivy

Go to download

An auxiliary findbugs.sourceforge.net plugin for java bug detectors that fall outside the narrow scope of detectors to be packaged with the product itself.

The newest version!
package ex;

import org.apache.commons.lang3.builder.ToStringBuilder;

public class CSBTS_StringToStringSample {
    static class Person {
        String name;
        int age;

        Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

        @Override
        public String toString() {
            // INCORRECT USAGE : The same as invoking Object.toString()
            // return new ToStringBuilder(this).toString();
            // Consider using for non final classes to support a
            // string representation for derived types
            // return ToStringBuilder.reflectionToString(this);
            // Use for final classes most efficient solution
            return new ToStringBuilder(this).append("name", name).append("age", age).toString();
        }
    }

    private enum SEX {
        Male, Female;
    }

    public final static class GenderPerson extends Person {
        private SEX sex;

        GenderPerson(String name, int age, SEX sex) {
            super(name, age);
            this.sex = sex;
        }
    }

    public static void main(String[] args) {
        Person p = new Person("John Doe", 2);
        ToStringBuilder x = new ToStringBuilder(p);
        ToStringBuilder y = new ToStringBuilder(p);
        // INCORRECT USAGE : The same as invoking Object.toString
        System.out.println("P " + new ToStringBuilder(p).toString());
        // Consider using for non final classes to support a string
        // representation for derived types
        System.out.println("P " + ToStringBuilder.reflectionToString(p));
        GenderPerson p2 = new GenderPerson("Jane Doe", 2, SEX.Female);
        System.out.println("GP " + new ToStringBuilder(p2).append("name", p2.name).append("age", p2.age)
                .append("sex", p2.sex).toString());
        // Y now has an append
        y.append("name", p.name);
        System.out.println("P - Once Again " + y.toString());
        System.out.println("P - Again " + x.toString());
    }

    public class FPAppend extends ToStringBuilder {

        FPAppend(Object object) {
            super(object);
        }

        @Override
        public ToStringBuilder append(Object obj) {
            return super.append(obj);
        }

    }

    public class CustomToStringBuilder409 extends ToStringBuilder {

        CustomToStringBuilder409(Object object) {
            super(object);
        }

        @Override
        public ToStringBuilder append(Object obj) {
            return super.append(obj);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy