In this post Generating Getter And Setter methods Java Reflection we will learn how to generate Getters And Setters methods Java Reflection API.
Java Bean class:
1 2 3 4 5 6 7 8 9 |
package com.kkjavatutorials.model; public class Person { private String name; private int age; private boolean flag; } |
Java Utility Class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com.kkjavatutorials.client; public class CommonUtils { public static void createSetter(String fName, String fType, StringBuffer sb) { sb.append("public void").append(" set"); sb.append(getFieldName(fName)); sb.append("(" + fType + " " + fName + ") {"); sb.append("\n\t this." + fName + " = " + fName + ";"); sb.append("\n" + "}" + "\n"); } public static void createGetter(String fName, String fType, StringBuffer sb) { sb.append("public " + fType) .append((fType.equals("boolean") ? " is" : " get") + getFieldName(fName) + "(){"); sb.append("\n\treturn " + fName + ";"); sb.append("\n" + "}" + "\n"); } private static String getFieldName(String fName) { return fName.substring(0, 1).toUpperCase() + fName.substring(1, fName.length()); } } |
Client Class GetterSetterGeneratorTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package com.kkjavatutorials.client; import java.lang.reflect.Field; import java.util.Arrays; /** * @author KK JavaTutorials * Generating Getters And Setters Using Reflection Java API */ public class GetterSetterGeneratorTest { public static void main(String[] args) { try { Class<?> cls = Class.forName("com.kkjavatutorials.model.Person"); // Getting fields of the class Person System.out.println("---------------Getting fields of the class Person--------------------"); Field[] fields = cls.getDeclaredFields(); System.out.println("Fields: " + Arrays.toString(fields)); StringBuffer sb = new StringBuffer(); System.out.println("---------All Fields and crossponding Setter and Getter methods--------------"); for (Field field : fields) { String fieldName = field.getName(); String fieldType = field.getType().getSimpleName(); System.out.println("Field Name: " + fieldName); System.out.println("Field Type: " + fieldType); CommonUtils.createSetter(fieldName, fieldType, sb); CommonUtils.createGetter(fieldName, fieldType, sb); } System.out.println(sb.toString()); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } |
If you run above program in your favourite IDE then you will get blow output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
---------------Getting fields of the class Person-------------------- Fields: [private java.lang.String com.kkjavatutorials.model.Person.name, private int com.kkjavatutorials.model.Person.age, private boolean com.kkjavatutorials.model.Person.flag] ---------All Fields and crossponding Setter and Getter methods-------------- Field Name: name Field Type: String Field Name: age Field Type: int Field Name: flag Field Type: boolean public void setName(String name) { this.name = name; } public String getName(){ return name; } public void setAge(int age) { this.age = age; } public int getAge(){ return age; } public void setFlag(boolean flag) { this.flag = flag; } public boolean isFlag(){ return flag; } |
That’s all about Generating Getters And Setters methods Java Reflection
You May Also Like:
Which data type would you choose for storing currency values like Trading Price in Java?
How would you print a given currency value for Indian Locale (INR Currency)?
Which classes in java are immutable ?
How would you round a double value to certain decimal Precision and Scale ?
What is BlockingQueue? How can we implement Producer and Consumer problem using Blocking Queue?
How to get number of available processors in Java ?
If you have any feedback or suggestion please feel free to drop in blow comment box.