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反射原理

  • 2016年03月21日 09:30
  • 45KB
  • 下载

java反射机制

  • 2016年06月05日 21:04
  • 7KB
  • 下载

通俗易懂解释java反射机制(二)

JAVA有着一个非常突出的动态相关机制:Reflection, 用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。 换句话说,Java程序可以加载一个运行...

Java反射机制

  • 2015年02月27日 21:08
  • 845KB
  • 下载

Java 语言的反射机制

  • 2013年08月29日 22:43
  • 185KB
  • 下载

Java反射机制的适用场景及其利与弊

Java反射机制的适用场景及其利与弊   一、反射的适用场景是什么? 1).Java的反射机制在做基础框架的时候非常有用,有一句话这么说来着:反射机制是很多Java框架的基石。而一般应用层面很少...
  • zolalad
  • zolalad
  • 2014年06月08日 16:13
  • 6830

JAVA反射与代理

  • 2014年03月06日 01:00
  • 10KB
  • 下载

细说反射,Java 和 Android 开发者必须跨越的坎

写作是门手艺,笑对需要勇气。写下这个题目的时候,我压力比较大,怕的是费力不讨好。因为反射这一块,对于大多数人员而言太熟悉了,稍微不注意就容易把方向写偏,把知识点写漏。但是,我已经写了注解和动态代理这两...
  • briblue
  • briblue
  • 2017年07月06日 23:36
  • 14468

Java泛型和反射机制

  • 2014年01月07日 11:20
  • 626KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java反射
举报原因:
原因补充:

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