`
8850702
  • 浏览: 28433 次
文章分类
社区版块
存档分类
最新评论

Java.反射.调用方法

 
阅读更多
// 取得一个类的全部方法定义
	public static void main(String[] args) {
		Class<?> class1 = null;
		try {
			class1 = Class.forName("fanshe.Person");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		Method[] methods = class1.getMethods();// 得到类的全部方法
		for (int i = 0; i < methods.length; i++) {
			// 得到方法名
			String method_name = methods[i].getName();
			System.out.print(method_name);

			// 得到参数类型
			Parameter[] parameters = methods[i].getParameters();
			for (int j = 0; j < parameters.length; j++) {
				System.out.println(parameters[j].getName());
			}
			System.out.println();
		}
	}


// 取得Person类中的属性
	public static void main(String[] args) {
		Class<?> class1 = null;
		try {
			class1 = Class.forName("fanshe.Person");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		{
			Field[] fields = class1.getDeclaredFields();// 取得Person类的属性
			for (int i = 0; i < fields.length; i++) {
				Class<?> type = fields[i].getType();
				System.out.print(fields[i].getName() + ",");// 取得属性的名称
				System.out.print(type.getName());// 取得属性的类型

				int modifiers = fields[i].getModifiers();// 取得访问修饰符(public,private)的数字
				String string = Modifier.toString(modifiers);// 取得访问修饰符
				System.out.print("." + string);//输出访问修饰符
				System.out.println();
			}
		}
		System.out.println("================================================");
		
	}



//调用Person类sayHi方法
	public static void main(String[] args) {
		Class<?> class1=null;
		try {
			class1=Class.forName("fanshe.Person");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		try {
			//方法原型public void sayHi(String content);
			//sayHi,方法名称;
			//String.class,方法参数的类型
			Method method = class1.getMethod("sayHi",String.class);
			
			//调用方法,必须传递对象实例和方法参数
			method.invoke(class1.newInstance(),"111");
		}  catch (Exception e) {
			// TODO: handle exception
		}
		
	}
分享到:
评论

相关推荐

    Java方法反射调用demo

    Java反射 调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用基本类型数组参数的方法 调用String数组参数的方法 调用Object数组参数的方法 调用私有方法

    Java反射调用方法

    通过Java反射调用方法,适合初级自学者,通俗易懂

    Java 反射创建get set方法及反射方法的调用

    Java 反射创建get set方法及反射方法的调用

    java 反射 调用私有方法(有参数私有方法)获取私有属性值

    java 反射 调用私有方法(有参数私有方法)获取私有属性值

    java反射知识点

    这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 我的代码里主要有一下知识点: 1.获取Class对象的三种方式 2.获取构造方法并调用 3.获取成员方法 4.获取成员变量 5.反射数组 6.通过反射...

    Java反射方法调用

    调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用数组参数的方法 调用私有方法

    android PackageManager 反射调用相关的类

    Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用Java反射。android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用...

    java反射调用

    java反射调用set方法时如果让参数做自动类型转换5 这段时间学习java的反射机制想实现一个功能:遍历一个Map,然后利用反射机制调用BO的set方法,完成BO属性的自动注入。这样设计的初衷是解决Excel数据导入问题中的...

    通过反射调用静态方法

    本例演示了如何使用反射,调用类的静态方法,封装了工具类ClsTool,统一实现静态方法的调用。使用反射,在特定场景下,能够很好的简化代码。例如mybatis

    java动态调用方法

    利用java反射原理实现方法的动态调用。

    JAVA反射机制动态调用 计算器对象的加法,减法函数;JAVA反射机制修改一个学生对象 的私有数据成员

    使用JAVA反射机制动态调用 计算器对象的加法,减法函数。 使用JAVA反射机制修改一个学生对象 的私有数据成员(不允许调用setters) 使用的类有Class, Method, Field

    37.Java的反射.md

    Java反射反射机制,通过反射,在不修改源代码的情况下实现对类的操作。JAVA反射机制是在运行状态中(**即RunTime阶段**); 对于任意一个实体类(**如Person类**),都能够知道这个类的所有属性(**name**)和方法(**eat...

    利用java反射调用Android隐藏Api

    利用java的反射原理来调用 Android隐藏api 应用开发必备哦 详细描述: http://blog.csdn.net/y_haiyang/article/details/9924925 ====================关注小鱼=================== 新浪微博:...

    frida反射调用对象中的方法与字段.pdf

    该篇文章主要介绍当我们碰到参数或者返回值是一个对象时,如何通过frida反射调用该对象的方法(methods)与获取该对象的字段(fields)。感兴趣的朋友可以下载下来看看,了解了解

    通过java类的路径实例化类并调用方法

    通过java类的路径实例化类并调用方法:仅仅知道类的路径,就可以实例化对象,利用反射机制调用其方法

    Java高级程序设计实战教程第三章-Java反射机制.pptx

    都能够调用它的任意一个方法,常见的应用如下 逆向代码 ,例如反编译 与注解相结合的框架 例如Retrofit 单纯的反射机制应用框架 例如EventBus 2.x 动态生成类框架 例如Gson Java高级程序设计实战教程第三章-Java反射...

    Java 反射调用设置值

    Java 反射调用设置值

    java反射调用封装接口

    万能的反射封装接口,值得下载参考,当成util

    JAVA_API1.6文档(中文)

    java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java....

    java反射机制,调用私有方法

    Method,invoke,getMethod等反射私有方法和私有属性

Global site tag (gtag.js) - Google Analytics