zoukankan      html  css  js  c++  java
  • java通过反射机制取javabean的属性值和方法

    package com.landray.kmss.km.mdm.maindata.jdbc.tools;

    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.lang.reflect.Modifier;

    public class Test {
     
     public static void main(String[] args){
      try {
       TestBean bean = new TestBean();
       String temp = "";
       bean.setAge("20");
       bean.setName("Shane");
       bean.setSex("boy");
       getClassInfo(bean);
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
     
     public static void getClassInfo(Object obj) throws Exception {
      Class clas = Class.forName("com.landray.kmss.km.mdm.maindata.jdbc.tools.TestBean");
      if(!(clas.isInstance(obj))){
       System.out.println("传入的java实例与配置的java对象类型不符!");
       return;
      }
      Field[] fields = clas.getDeclaredFields();
      Method[] methods = clas.getDeclaredMethods();
      System.out.println("--------------- 属性如下  -----------------");
      for (Field field : fields) {
       int mod = field.getModifiers();
       System.out.println(Modifier.toString(mod) // 取得修饰符
         + " " + field.getType().getName() // 取得类型名
         + " " + field.getName()+ " " + field.get(obj)); // 取得属性名
      }
      System.out.println("--------------- 方法如下 -----------------");
      for (Method method : methods) {
       
       StringBuffer methodBuffer = new StringBuffer();
       int mod = method.getModifiers();
       methodBuffer.append(Modifier.toString(mod)) // 取得修饰符
         .append(" ").append(method.getReturnType().getName()) // 取得返回值类型
         .append(" ").append(method.getName()) // 取得方法名
         .append("(");
       for (Class ss : method.getParameterTypes()) {
        methodBuffer.append(ss.getName()).append(","); // 取得参数
       }
       if(methodBuffer.lastIndexOf(",")>=0)
        methodBuffer.deleteCharAt(methodBuffer.lastIndexOf(",")); // 去掉最后一个","
       methodBuffer.append(")");
       System.out.println(methodBuffer.toString()); // 打印输出
      }

     }

    }

  • 相关阅读:
    linux中按行读取指定行
    linux常用配置文件
    linux虚拟机设置网络
    jenkins新建一个robot脚本的job
    jenkins中配置邮件发送
    jenkins中robot framework插件安装
    Jenkins subversion svn插件安装失败
    jenkins节点启动
    {"non_field_errors":["Unable to log in with provided credentials."]}% 无法使用提供的凭据登录
    路径模板
  • 原文地址:https://www.cnblogs.com/cookray/p/2085422.html
Copyright © 2011-2022 走看看