Java反射《四》获取方法

 1 package com.study.reflect;
 2
 3 import java.lang.reflect.InvocationTargetException;
 4 import java.lang.reflect.Method;
 5
 6 import org.omg.Dynamic.Parameter;
 7 /**
 8  * 反射,获取方法
 9  * @ClassName: MethodDemo
10  * @author liChao
11  * @date 2017年9月10日 下午4:25:21
12  */
13 public class MethodDemo {
14
15     public static void main(String[] args) throws NoSuchMethodException,
16     SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
17         Class c = Student.class;
18         // c.getMethods(),获得所有的public修饰的方法,包括从父类那继承来的。
19         Method[] m1 = c.getMethods();
20         for(Method m:m1){
21             String name = m.getName();
22             System.out.print("方法名:"+name);
23             Class[] para = m.getParameterTypes();
24             for(Class cl:para){
25                 System.out.print("--"+cl.getName()+"...");
26             }
27             System.out.println();
28         }
29         //通过方法名、参数类型,获取方法
30         Method m2 = c.getMethod("setName", String.class);
31         //通过类创建实例
32         Object obj = c.newInstance();
33         m2.invoke(obj, "张飞");
34         System.out.println(obj);//Student [name=张飞, age=0]
35
36
37     }
38 }
时间: 2024-07-30 20:11:04

Java反射《四》获取方法的相关文章

javassist:增强型的java反射工具,获取方法参数名

java的反射是不能获取方法的参数名的.比如: [java] view plaincopyprint? public String concatString(String str1,String str2){ return str1+str2; }     public String concatString(String str1,String str2){         return str1+str2;     } 想获取"str1",和"str1"这个参数

乐字节Java反射之三:方法、数组、类加载器和类的生命周期

本文承接上一篇:乐字节Java发射之二:实例化对象.接口与父类.修饰符和属性 继续讲述Java反射之三:方法.数组.类加载器 一.方法 获取所有方法(包括父类或接口),使用Method即可. public static void test() throws Exception { Class<?> clz = Class.forName("com.shsxt.ref.simple.User "); //获取属性 System.out.println("======

反射之获取方法信息

本文接上文"反射之Class类的使用",以编写一个用来获取类的信息(成员函数.成员变量)的工具类来讲解"反射之获取方法信息" 1.新建工具类,命名ClassUtil,输入一个对象(Object),输出该对象的基础信息方法(printClassMessage) 1 /** 2 * 打印类的信息,成员函数.成员变量 3 * Created by Format on 2017/6/3. 4 */ 5 public class ClassUtil { 6 7 } 2.获取类

J2SE_通过反射能获取方法参数名称吗?

一.Java通过反射可以获取方法的参数名称吗? 不能!!! 二.测试示例代码: import java.lang.reflect.Method; class T { public void print(String username) { System.out.println(username); } } public class Test { public static void main(String[] args) { T t = new T(); t.print("zhangsan&qu

java 反射机制获取类名、属性、方法、构造器和反射动态使用

被反射的类: @Table("tb_student") public class Student { @Fields(columnName="id",type="int",length=10) private int id; @Fields(columnName="studentName",type="varchar",length=10) private String studentName; @Fiel

Java反射之剖析方法

继上篇反射构造函数后,今剖析函数方法. 要通过反射执行方法: 1.可以先反射出类或构造函数,创建实例对象,通过对象调用方法(反射通过构造函数创建对象参见上篇). 2.可以通过类反射出方法,传入关联对象,从而实现对象调用方法. 以下是一个简单测试类: 包含两个文件: 1.Person.java,用于反射操作 2.Deom:Demo_MtdRft.java,反射的测试代码 测试的情况包括:1.公有方法,2.私有方法,3.无参数方法,4.有参数方法,5静态方法 下面是两个测试代码文件: Person.

java 反射机制-获取对应class信息

1 package reflection; 2 3 public class User { 4 public String name; 5 protected int age; 6 String address; 7 private String sex; 8 9 public User() { 10 super(); 11 } 12 13 public User(String name, int age, String sex) { 14 super(); 15 this.name = nam

java反射之获取枚举对象

项目中导入大量枚举对象,用来定义常量.随着带来一个问题,就是每个枚举类都需要通过key来获取对应枚举的需求. 1 public enum ExamType { 2 CRAFT(1, "草稿"), 3 PASSING(2, "待审核"); 4 private int value; 5 private String typeName; 6 7 ExamType(int value, String typeName) { 8 this.value = value; 9 t

JAVA 反射 动态获取类,并调用方法

Class<?> clazz = Class.forName("cn.walle.sysGrid.MyMethod"); Object show = (Object) clazz.newInstance(); getMethod("show",show,null);

java反射(四)--反射与简单java类

一.传统简单java类 简单的java类主要是由属性所组成,并且提供有相应的setter以及getter的处理方法,同时简单java类最大的特征就是通过对象保存相应的类的属性内容,但是如果使用传统的简单java类的开发,那么也会面临非常麻烦的困难: 1 class Emp{ 2 private String ename; 3 private String job; 4 5 public void setEname(String ename) { 6 this.ename = ename; 7 }