获取Java对象的所有属性和方法

Java开发中遍历Java对象,获取对应的属性和值。主要用到java.lang.reflect.Field这个类
废话不多说,上代码。

//示例类
 public class Host{
    private String ip;
    private int port;
    private String name;
    private List<String> child;
    public String getIp() {
        return ip;
    }
    public void setIp(String ip) {
        this.ip = ip;
    }
    public int getPort() {
        return port;
    }
    public void setPort(int port) {
        this.port = port;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public List<String> getChild() {
        return child;
    }
    public void setChild(List<String> child) {
        this.child = child;
    }
    
}
//
public class ReduceObject {
    public static void main(String[] args){
        Host host= new Host();
        host.setIp("192.168.145.130");
        host.setName("redisNode");
        host.setPort(5000);
        Field [] fields = refrect(host);
        for(int i=0;i<fields.length;i++){
            Field f = fields[i];
            f.setAccessible(true);//设置属性可读
            try {
                System.out.println("host["+f.getName()+"] =  "+f.get(host));
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        
    }
        //获得所有属性数组
    public static Field[] refrect(Host host){
        Class cls = host.getClass();
        Field[] fields = cls.getDeclaredFields();    
        return fields;
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,523评论 25 708
  • 前言,本来只是想研究一下注解的,不过发现,要懂注解先得懂反射,别问我为什么,你可以自己试试 JAVA反射 主要是指...
    justCode_阅读 1,233评论 2 9
  • 人生不过就是忐忑紧张焦虑不知所措的前戏多,而实际完胜后的高潮很短,最后很长时间用来留下“原来不过如此”的一...
    我还是半澄阅读 194评论 0 2
  • 不同的航空公司的空乘服务可谓是千差万别,同样是几个小时的飞行,有些航空公司的空乘服务可谓是让人印象深刻,与其他的那...
    觞咏阅读 398评论 3 2
  • 有想象力的意大利人 用幽默放了一把火 烧掉了小说和她久居的壁垒森严的宫殿 解放了被缚的意识 中国中了魔法 沉浸在拉...
    勒普兰斯阅读 110评论 10 0