Java反射

原创 2015年07月10日 13:52:56

之前接触不多,现在项目用到了,就回顾一下,给自己以后做一个参考吧

一:建一个自己要访问的类

  

二:编写util 通过java反射访问Users中的属性和方法

   package com.demo.test;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ReflectTest {
     //其实ByuNewUsers可以专门提出来做一个util,这样需要访问那个方法只需要传值就行(可以自行修改)
     public static Users ByuNewUsers() throws ClassNotFoundException, NoSuchMethodException, SecurityException{
      
      Users users=null;   
      try {
          //①通过类装载器获取Users类对象
          ClassLoader loader=Thread.currentThread().getContextClassLoader();
          Class clazz=loader.loadClass("com.demo.test.Users");
          
          //②获取类的默认构造器对象并通过它实例化Users
          Constructor cons=clazz.getDeclaredConstructor((Class[])null);
          users=(Users) cons.newInstance();
          
          //③通过反射方法设置属性
          Method setUsersname=clazz.getMethod("setUsersname", String.class);
          setUsersname.invoke(users, "zhangsan");
          Method setPassword=clazz.getMethod("setPassword", String.class);
          setPassword.invoke(users, "123456");
          
      } catch (InstantiationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
      
      return users;
        
    }

        

    public static void main(String[] args) {
        
         try {
            ReflectTest.ByuNewUsers().show();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}


三:输出结果

   

java 反射详解通俗易懂

Java的反射机制是Java特性之一,反射机制是构建框架技术的基础所在。灵活掌握Java反射机制,对大家以后学习框架技术有很大的帮助。  那么什么是Java的反射呢?        大家都知道,要...
  • MissWwg
  • MissWwg
  • 2016年06月13日 18:33
  • 19408

JAVA 反射 动态调用不同类的静态方法

准备调用的类 package ss; public class Use {     public  static  Integer   demo( String s ){ ...
  • yjaspire
  • yjaspire
  • 2016年06月01日 09:10
  • 2965

java通过反射实列化接口

在java中,通过反射实列化接口,是比较常见的一部分.其中做的比较好的框架有spring  首先得有个接口,定义: package com.tbs.proxy; import java....
  • u012930316
  • u012930316
  • 2017年02月16日 17:16
  • 2298

Java反射实例

  Java反射经典实例 Java Reflection Cookbook Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,...
  • xuan_oscar
  • xuan_oscar
  • 2007年04月30日 21:07
  • 5055

JAVA反射与C#反射之比较

  JAVA反射与C#反射之比较一.什么是反射      在运行时环境,能否根据一个类的名字,来得到这个类的属性和方法?对于任何一个运行时的对象能否动态调用这个对象的方法?答案是可以的。这种动态的获取...
  • xswwlpz
  • xswwlpz
  • 2011年04月21日 05:14
  • 389

Java反射得到属性的值和设置属性的值

package com.whbs.bean; public class UserBean { private Integer id; private int age; ...
  • restraint
  • restraint
  • 2014年01月07日 08:41
  • 98975

Java 反射调用带基本数据类型参数的方法

Java 反射 基本数据类型
  • csm_qz
  • csm_qz
  • 2015年07月12日 21:36
  • 6203

java反射教程(最全)

java反射教程
  • jiangfullll
  • jiangfullll
  • 2014年11月27日 14:49
  • 7062

Java 反射机制 的超简单实例分析

菜鸟 第一次写这啥博客 呵呵  就前几天面试  面试官提到的Java反射机制 没有回答上来 回来钻研了一下 只是一些很浅显的东西 菜鸟而已(高手们懂的) 废话不多说 言归正传 一   什么是 Jav...
  • L19921009
  • L19921009
  • 2012年11月23日 00:52
  • 5667

结合Java反射用简单工厂模式改进抽象工厂模式

前一篇简单介绍了抽象工厂模式,结合Java的反射机制,可以用简单工厂模式来改进抽象工厂模式,减少类的数量,增加可维护性。UML图如下: 去除IFactory、SqlserverFacto...
  • sdauzxl
  • sdauzxl
  • 2016年08月20日 12:01
  • 1004
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java反射
举报原因:
原因补充:

(最多只允许输入30个字)