反射的应用一般是要用到某些特殊类的属性和方法,无论是一般方法还是私有方法都可以通过反射机制获取到。
下面将介绍其中的6种属性的获取:一般构造函数,私有有参构造函数,一般变量,私有变量,一般方法,私有有参方法
下面将介绍其中的6种属性的获取:一般构造函数,私有有参构造函数,一般变量,私有变量,一般方法,私有有参方法
---测试类 package com.test.jse.invoke; public class MyClass { public String n = "MyClass公有变量"; private String m = "MyClass私有变量"; public MyClass(){ System.out.println("MyClass无参公有构造方法"); } private MyClass(int n,String name){ System.out.println("MyClass有参私有构造方法"+"\t名字:"+name+"\t编号:"+n); } public void say(){ System.out.println("MyClass类的无参公有一般方法---say()"); } private void tell(String name){ System.out.println("MyClass类的一般有参私有方法----private tell()"); } }
----利用反射获取类中属性和调用类中的方法 package com.test.jse.invoke; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class People { public static void main(String[] args) { try { Class clazz = Class.forName("com.test.jse.invoke.MyClass");//反射出来的类clazz MyClass myClass =(MyClass)clazz.newInstance();//MyClass类无参数公有构造函数 Constructor constructor = clazz.getDeclaredConstructor(new Class[]{int.class,String.class}); constructor.setAccessible(true);//设置查看私有方法的权限 MyClass myclass2 = (MyClass)constructor.newInstance(1,"张三"); System.out.println(clazz.getField("n").get(myClass)); Field field = clazz.getDeclaredField("m");//定义m变量 field.setAccessible(true); System.out.println(field.get(myClass)); Method method_say = clazz.getMethod("say"); //先查询定位到公有say()方法 method_say.invoke(myClass); //再执行say()方法 Method method = clazz.getDeclaredMethod("tell", new Class[]{String.class }); //定义方法属性 method.setAccessible(true); method.invoke(myClass,"张三"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } } }
发表评论
-
java验证字符串中是否包含数字,对数字的操作
2016-03-15 11:01 9482在javascript中有一个方法 ... -
jdk7 Collections.sort()方法报非法参数异常
2016-03-03 18:57 12060JDK7的Comparison method violates ... -
log4j.properties配置详解
2016-01-18 16:50 1275Log4J的配置文件(Configuration File)就 ... -
Java 日期时间 Date类型,long类型,String类型表现形式的转换
2015-12-24 17:35 3271Java 日期时间 Date类型,long类型,String类 ... -
Java多线程-工具篇-BlockingQueue
2015-11-24 16:13 974Java多线程-工具篇-Block ... -
Java 实例 - 队列(Queue)入门用法
2015-11-23 17:27 1997队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表 ... -
Java中序列化的serialVersionUID作用
2015-11-13 14:13 4811Java序列化是将一个对象 ... -
java的序列化和反序列化
2015-10-27 19:48 1112Java基础学习总结——Jav ... -
java中volatile关键字的含义
2015-08-12 20:10 749java中volatile关键字的含 ... -
Java读写文件中文乱码问题
2015-07-20 17:49 2957问题:在用Java程序进行读写含中文的txt文件时,经常会出现 ... -
String类中split方法的使用
2015-07-02 14:39 979String类中split方法的使用 split 方法:将一个 ... -
PreparedStatement防止SQL注入
2015-04-11 16:27 2786一条效率差的sql语句,足以毁掉整个应用. Stateme ... -
Redis与Memcached的区别
2015-04-11 15:20 1068如果简单地比较Redis与Memcached的区别,大多数都 ... -
Session的生命周期
2015-04-11 11:58 905我们已经知道,Session是在用户第一次访问网 ... -
JAVA多线程和并发基础
2015-04-11 11:58 766JAVA多线程和并发基础 ... -
Hibernate一级缓存详解
2015-04-11 11:58 15221.Session 级别的缓存,它同session邦定。它 ... -
Java堆内存Heap与非堆内存Non-Heap
2015-04-08 22:19 1598堆(Heap)和非堆(Non-heap)内存 按照官 ... -
JVM内存模型
2015-04-08 22:07 913/*** 转载请注明作者l ... -
java类加载机制
2015-04-08 21:42 700研究Java类加载机制必要 ... -
classloader加载class的流程及自定义ClassLoader
2015-04-08 21:33 2265/*** 转载请注明作者longdick http: ...
相关推荐
java反射,获取所有属性、方法以及List集合类
java反射获取所有属性,获取所有get方法,包括子类父类,以及包括List集合类
java 反射 调用私有方法(有参数私有方法)获取私有属性值
java的反射机制操作父类的所有属性和方法。
Java反射 调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用基本类型数组参数的方法 调用String数组参数的方法 调用Object数组参数的方法 调用私有方法
3. 反射获取属性变量 3.1 获取所有public修饰符的成员变量 3.2 获取指定字段并赋值 3.3 获取所有的成员变量(不考虑修饰符) 3.4 获取私有的变量(利用暴力反射) 4. 反射获取构造方法 4.1有参构造 4.2无参构造 ...
1.通过Java反射机制获取JavaBean对象。 2.通过JavaBean全路径字符串获取JavaBean对象。 3.获取JavaBean注解信息
java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名。本项目为普通java项目
利用反射机制动态获取对象属性名称及数据类型 利用反射机制动态获取对象属性名称及数据类型 利用反射机制动态获取对象属性名称及数据类型 利用反射机制动态获取对象属性名称及数据类型 利用反射机制动态获取对象属性...
Java基本的反射方法
(通过反射获取无参构造方法并使用) (通过反射获取带参构造方法并使用) (通过反射获取私有构造方法并使用) (通过反射获取成员变量并使用) (通过反射获取无参无返回值成员方法并使用) (通过反射获取带参带返回值成员...
NULL 博文链接:https://bijian1013.iteye.com/blog/2299135
对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 我的代码里主要有一下知识点...
主要介绍了 java 利用反射机制,获取实体所有属性和方法,并对属性赋值的相关资料,需要的朋友可以参考下
主要介绍了Java利用反射获取object的属性和值代码示例,具有一定借鉴价值,需要的朋友可以参考下。
利用反射获取实例化类的属性值和属性值!很实用,直接复制到控制台就行了!
NULL 博文链接:https://1017401036.iteye.com/blog/2343706
下面小编就为大家带来一篇java反射遍历实体类属性和类型,并赋值和获取值的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
通过java的反射技术获取,某个包路径下的类,并以表格形式打印类的属性注解及属性名称等,打印的结果以|分隔,复制到excel表格后,可以设置分列成需要的excel表格