zoukankan      html  css  js  c++  java
  • 反射

    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    public class FanShe {
    
        public static void main(String[] args) throws Exception {
            // 创建class类实例,常用的有三种方法
            Class<?> clazz1 = Person.class;
            // Class<?> clazz2 =Class.forName("包名.类名"); //有异常
            // Class<?> clazz3 =new Person().getClass();
            // 创建运行时类的实例,如果包含无参构造器
            Object ob1 = clazz1.newInstance();
            // 创建运行时类的实例,如果没有无参构造器
            Constructor<?> con = clazz1.getConstructor(int.class, String.class);
    // Object ob2 =con.newInstance(2,"zhangsan"); //形参还可以用new class[]{int.class,String.class} // 调用指定的属性,如果是public修饰的 Field filed1 = clazz1.getField("number"); System.out.println(filed1.get(ob1)); // 调用指定的属性,如果不是public修饰的 Field filed2 = clazz1.getDeclaredField("age"); // 拼凑方法名,get()方法 String filed = "age"; String getField = "get" + String.valueOf(filed.charAt(0)).toUpperCase() + filed.substring(1); System.out.println(getField); // 拼凑方法名,set()方法 String setField = "set" + filed.toUpperCase().charAt(0) + filed.substring(1); System.out.println(setField); // 调用指定的方法 Method method1 = clazz1.getDeclaredMethod("setAge", new Class[] { int.class }); method1.invoke(ob1, 20); Method method2 = clazz1.getDeclaredMethod(getField); System.out.println(method2.invoke(ob1)); // 如果调用的方法没有返回值,则打印结果除了方法体里的打印内容外,还会打印null // 如果有返回值,则会把null替换成相应的返回值 } } public class Person { public int number =20; private int age; private String name; public Person(int age, String name) { this.age = age; this.name = name; } public Person() { } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int speak(){ System.out.println("我是一个人"); return 1; } }
  • 相关阅读:
    nginx 配置 开发
    导入excel 数据到mysql出现的时间格式
    gradle 集成到myeclipse
    多线程同步和异步的方式
    谈一下spring 的理解
    java 中的反射
    Sublime Text 下配置python
    Python元组的简单介绍
    Python中strip()函数
    Python中的repr()函数
  • 原文地址:https://www.cnblogs.com/xieshunjin/p/5506242.html
Copyright © 2011-2022 走看看