设为首页 加入收藏

TOP

Java反射机制点滴知识(一)
2019-09-14 00:54:04 】 浏览:217
Tags:Java 反射 机制 点滴 知识

什么是反射


获取class文件对象的方式   


  Object类的getClass()方法
  数据类型的静态属性class
  Class类中的静态方法
      public static Class forName(String className)


 


        // 方式1
        Person p = new Person();
        Class c = p.getClass();


        Person p2 = new Person();
        Class c2 = p2.getClass();


        System.out.println(p == p2);// false
        System.out.println(c == c2);// true


        // 方式2
        Class c3 = Person.class;
        // int.class;
        // String.class;
        System.out.println(c == c3);


        // 方式3
        // ClassNotFoundException
        Class c4 = Class.forName("renxixao.Person");
     System.out.println(c == c4); } }


通过反射获取构造方法并使用


public class Person {
    private String name;
    int age;
    public String address;


    public Person() {
    }


    private Person(String name) {
        this.name = name;
    }


    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }


    public Person(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }


    public void show() {
        System.out.println("show");
    }


    public void method(String s) {
        System.out.println("method " + s);
    }


    public String getString(String s, int i) {
        return s + "---" + i;
    }


    private void function() {
        System.out.println("function");
    }


    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + ", address=" + address
                + "]";
    }


}


/*
 * 通过反射获取构造方法并使用。
 */
public class ReflectDemo {
    public static void main(String[] args) throws Exception {
       
        // 获取字节码文件对象
        Class c = Class.forName("renxixao.Person");


        // public Constructor[] getConstructors():所有公共构造方法
        Constructor[] constructors = c.getConstructors();
        for (Constructor con : constructors) {
            System.out.println("公共构造方法:"+con);
        }
       
        // public Constructor[] getDeclaredConstructors():所有构造方法
        Constructor[] declaredConstructors = c.getConstructors();
        for (Constructor con : declaredConstructors) {
            System.out.println("所有构造方法:"+con);
        }
    &nbs

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Pytorch 常用函数 下一篇关于 Python迭代器和生成器

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目