zoukankan      html  css  js  c++  java
  • 使用反射调用某个类的成员方法

    1.创建一个Person类,写几个方法

    package seday18c;
    /**
     * @author xingsir
     * 创建一个Person类,写几个方法
     */
    public class Person {
    	public void eat() {
    		System.out.println("我在吃");
    	}
    	public void run() {
    		System.out.println("我在跑");
    	}
    	public void eat(String name) {
    		System.out.println("我是"+name+",我在吃");
    	}
    	public void eat(String name,int count) {
    		System.out.println("我是"+name+",我在吃"+count+"只牛蛙");
    	}
    
    }
    

      2.创建使用反射调用某个类的成员方法

    package seday18c;
    
    import java.lang.reflect.Method;
    import java.util.Scanner;
    
    /**
     * @author xingsir
     * 使用反射调用某个类的成员方法
     */
    public class ReflectDemo3 {
    	public static void main(String[] args) throws Exception {
    //		Person p = new Person();
    //		p.sayHello();
    		
    		
    		Scanner scanner = new Scanner(System.in);//控制台输入
    		System.out.println("请输入要实例化的类:");//例如输入:seday18c.Person
    		String className = scanner.nextLine();
    		//利用反射
    		Class cls = Class.forName(className);
    		
    		/*
    		 * Class提供了实例化对象的方法:Object newInstance()
    		 * 这个方法要求Class表示的类必须由无参构造方法,否则会抛出异常。
    		 * 若当前类没有无参构造方法,我们需要先通过类对象获取其定义的某种构造方法,然后通过构造方法对象来进行实例化。
    		 */
    		Object o = cls.newInstance();
    		
    		System.out.println("请输入要调用的方法名:");
    		String methodName = scanner.nextLine();
    		//先通过类对象获取要调用的方法
    		Method method=cls.getMethod(methodName);
    		//调用指定对象的方法
    		method.invoke(o);
    	}
    }
    

      

  • 相关阅读:
    18款 非常实用 jquery幻灯片图片切换
    6款强大的 jQuery 网页布局创建及优化插件
    18 个最新实用的 jQuery 插件
    jQuery中的编程范式
    JQuery _ 定时器(jQuery Timers) 学习
    21个最佳jQuery插件推荐
    7 款基于 JavaScript/AJAX 的文件上传插件
    C#
    kernel 3.10内核源码分析--hung task机制
    进程的虚拟地址空间
  • 原文地址:https://www.cnblogs.com/xingsir/p/12667153.html
Copyright © 2011-2022 走看看