java8反射创建对象

java8反射创建对象

 

 

创建类

package classlode;

/**
 * * *  GOOK LUCK  * *
 *
 * @Author by   wukainian,
 * @Date on     2019/2/22.
 */
public class Systemlike {

    public Systemlike(String name) {
        this.name = name;
    }

    private String name;

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

    public String syd() {
        return "Hello";
    }
}


 

package classlode;

import java.lang.reflect.Constructor;
import java.util.HashMap;
import java.util.Map;

/**
 * * *  GOOK LUCK  * *
 *
 * @Author by   wukainian,
 * @Date on     2019/2/22.
 */
public class ObjectPool {


    private Map<String,Object> map = new HashMap<>();


    /**
     *普通的创建Class方式
     * @param clazzName
     * @return
     * @throws Exception
     */
    public Object createObject(String clazzName) throws Exception{
        Class<?> clazz = Class.forName(clazzName);
        return clazz.newInstance();
    }


    /**
     * 1 中的String.class  表示需要指定对象的构造参数类型
     * 2 中的“a” 是将"a"作为改构造参数的值
     * @param clazzName
     * @return
     * @throws Exception
     */
    public Object createObject1(String clazzName) throws Exception{
        Class<?> clazz = Class.forName(clazzName);
        //1
        Constructor constructor = clazz.getConstructor(String.class);
        //2
        return constructor.newInstance("a");
    }










}

 

 

测试结果

java8反射创建对象

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: