zoukankan      html  css  js  c++  java
  • 通过反射创建对象和调用方法

    1、反射创建对象,该对象有一个无参的构造方法

    //reflect.User表示User类的全路径
    User user = (User) Class.forName("reflect.User").newInstance();   

    2、反射创建对象,该对象有 有参的构造方法

    //getConstructor(String.class,String.class)表示该构造方法有两个参数,参数类型为String
    //newInstance("张三","20") :给参数赋值

    User user1=(User) Class.forName("reflect.User").getConstructor(String.class,String.class).newInstance("张三","20");

    3、反射方法:先得到对象,通过对象反射方法

    Method method = user.getClass().getMethod("sayHello", String.class); //“sayHello方法名”
    method.invoke(user, "张三");  //给方法参数赋值

    全部代码

    package reflect;
    
    import java.lang.reflect.Method;
    
    public class demo1 {
        public static void main(String[] args) {
            try {
                User user = (User) Class.forName("reflect.User").newInstance();
                User user1=(User) Class.forName("reflect.User").getConstructor(String.class,String.class).newInstance("张三","20");
                System.out.println(user);
                System.out.println(user1);
                //通过对象反射方法
                Method method = user.getClass().getMethod("sayHello", String.class);
                method.invoke(user, "张三");
                
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    class User{
        private String name;
        private String age;
        public User(){}
        public User(String name,String age) {
            this.name = name;
            this.age = age;
        }
        @Override
        public String toString() {
            return "User [name=" + name + ", age=" + age + "]";
        }
        
        public void sayHello(String name) {
            System.out.println("Hello "+name);
        }
        
    }
  • 相关阅读:
    leetcode 287 寻找重复数
    739 每日温度 && 单调栈算法的思路
    leetcode 34 在排序数组中查找元素的第一个和最后一个位置
    leetcode 239 滑动窗口最大值
    leetcode 114 二叉树展开为链表
    leetcode 79 单词搜索
    leetcode 88 合并两个有序数组
    函数指针 & 指针函数
    leetcode 240 搜索二维矩阵
    谱聚类
  • 原文地址:https://www.cnblogs.com/dongtian-blogs/p/10802969.html
Copyright © 2011-2022 走看看