zoukankan      html  css  js  c++  java
  • java反射之Constructor简单应用

    Constructor类是java反射中重要的类,它是对类中构造器的描述的类。类似于Method(对类中方法的描述的类),Field(对类中属性的描述的类)。

    通过创建Constructor的对象实例,我们可以创建源对象。

    小测试demo:

    package com.wtd;
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.InvocationTargetException;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.ListIterator;
    
    
    class Car{
        public void run(){
            System.out.println("----running");
        }
        public Car() {
            // TODO Auto-generated constructor stub
            System.out.println("Car()");
        }
        public Car(int i){
            System.out.println("Car(i)");
            
        }
    }
    public class Temp1 {
        public static void main(String[] args) {
            Class<Car> clazz = Car.class;
            try {
                Constructor<Car> constructor = clazz.getConstructor();
                Car car =  constructor.newInstance();
                Constructor<Car> constructor2= clazz.getConstructor(int.class);
                Car car2 = constructor2.newInstance(2);
                car.run();
                car2.run();
            } catch (NoSuchMethodException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SecurityException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InstantiationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    output:
    Car()
    Car(i)
    ----running
    ----running

    注意:

    Car的构造器,必须显示声明。不然Constructor.newInstance()报错。

  • 相关阅读:
    PHPUnit断言详情
    dev tools杂谈
    sublime text3 + python3.5 ide
    文件传输接收sz、rz命令用法
    Linux编辑器vi使用方法详细介绍
    vi编辑字符串替换及sed用法
    Selenium实战(一)——浏览器实例
    Python的数据库连接
    Cypress测试框架——一个简单的测试用例
    Cypress测试框架——入门1
  • 原文地址:https://www.cnblogs.com/westward/p/5506758.html
Copyright © 2011-2022 走看看