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()报错。

  • 相关阅读:
    ios开发之 -- 自动轮播图创建
    swift开发之 -- 自动轮播图(UIScrollView+UIPageControl+Timer)
    HTML5开发之 -- 模态突出窗(bootstrap)
    ios开发之--UICollectionView的使用
    ios开发之--判断奇偶数
    swift开发之 -- ? 和 ! 的作用
    swift开发之--UISearchBar的使用/UISearchController的使用
    swift开发之--报错:Class "***ViewController" has no initializers
    Android开发相关
    沁园春·雪
  • 原文地址:https://www.cnblogs.com/westward/p/5506758.html
Copyright © 2011-2022 走看看