Generator in Java BY THINK IN JAVA

    说到在java中创建类的对象,一般都会想到用new关键字来实现。但是在某些特定情况下使用new来创建对象会显得更加麻烦,尤其在给容器初始化赋值的时候。

    通过使用Generator,可以很方便地为任何类提供类的对象,而不是通过new的方式。

    1、申明一个Generator接口,提供一个next()方法,用以返回一个新的类对象

public interface Generator<T> {
T next();
}

    2、定义一个类,对Generator接口进行实现,用以生成某个类的对象。通过create()方法创建新的对象,使用泛型参数。

public class BasicGenerator<T> implements Generator<T>{
private Class<T> tClass;
BasicGenerator(Class<T> cClass){
this.tClass = cClass;
}
@Override
public T next() {
try {
return tClass.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
public static <T> BasicGenerator<T> generator(Class<T> tClass){
return new BasicGenerator<>(tClass);
}
}

    3. 测试

class Text99{
public void print(){
System.out.println("Text99");
}
}
public static void main(String[] args) {
BasicGenerator<Text99> text99BasicGenerator = BasicGenerator.generator(Text99.class);
text99BasicGenerator.next().print();
}


评论

热门博文