get Getter Method For Field - Java Reflection

Java examples for Reflection:Getter

Description

get Getter Method For Field

Demo Code


import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Main{
    private static Logger log = Logger.getLogger(BeanUtil.class
            .getSimpleName());// w w  w. j  av a2 s.  co m
    public static Method getGetterMethodForField(Object obj, Field field)
            throws NoSuchMethodException {
        try {
            return obj.getClass().getDeclaredMethod(
                    getGetterMethodNameForField(obj, field));
        } catch (NoSuchMethodException nsme) {
            log.log(Level.WARNING, "Can't find method.", nsme);
            throw nsme;
        }
    }
    public static Method getGetterMethodForField(Object obj,
            String fieldName) throws NoSuchMethodException,
            NoSuchFieldException {
        return obj.getClass().getDeclaredMethod(
                getGetterMethodNameForField(fieldName, obj.getClass()
                        .getDeclaredField(fieldName)));
    }
    public static Method getGetterMethodForField(Class obj, String fieldName)
            throws NoSuchMethodException, NoSuchFieldException {
        return obj.getDeclaredMethod(getGetterMethodNameForField(fieldName,
                obj.getDeclaredField(fieldName)));
    }
    public static String getGetterMethodNameForField(Object obj, Field field) {
        if (field.getType() == Boolean.class
                || field.getType() == boolean.class) {
            String isGetterName = "is"
                    + field.getName().substring(0, 1).toUpperCase()
                    + field.getName().substring(1);
            try {
                obj.getClass().getDeclaredMethod(isGetterName);
                return isGetterName;
            } catch (NoSuchMethodException nsme) {
            }
        }
        return "get" + field.getName().substring(0, 1).toUpperCase()
                + field.getName().substring(1);
    }
}

Related Tutorials