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

org.nutz.lang.eject.EjectByField Maven / Gradle / Ivy

package org.nutz.lang.eject;

import java.lang.reflect.Field;

import org.nutz.lang.Lang;
import org.nutz.log.Log;
import org.nutz.log.Logs;

public class EjectByField implements Ejecting {

    private static final Log log = Logs.get();

    private Field field;

    public EjectByField(Field field) {
        this.field = field;
        this.field.setAccessible(true);
    }

    public Object eject(Object obj) {
        try {
            return null == obj ? null : field.get(obj);
        }
        catch (Exception e) {
            if (log.isInfoEnabled())
                log.info("Fail to get value by field", e);
            throw Lang.makeThrow(    "Fail to get field %s.'%s' because [%s]: %s",
                                    field.getDeclaringClass().getName(),
                                    field.getName(),
                                    Lang.unwrapThrow(e),
                                    Lang.unwrapThrow(e).getMessage());
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy