本文主要是介绍java 一个通用的Generator——批量创建类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
下 面的程序可以为任何类构造一个Generator,只要该类具有默认的构造函数。为了减少类型声明,他提供了一个泛型方法,用以生成BasicGenerator:
public interface Generator<T> {T next();
}
public class BasicGenerator<T> implements Generator<T> {private Class<T> type;public BasicGenerator(Class<T> type) {this.type = type;}@Overridepublic T next() {try {return type.newInstance();} catch (InstantiationException | IllegalAccessException e) {throw new RuntimeException(e);}}public static <T> Generator<T> create(Class<T> type) {return new BasicGenerator<T>(type);}public static void main(String[] args) {Generator<CountedObject> gen = BasicGenerator.create(CountedObject.class);for (int i = 0; i < 5; i++) {System.out.println(gen.next());}}
}
这个类提供了一个基本实现,用以生成某个类的对象。这个类必须具备两个特点:(1)它必须声明为public。(因为BasicGenerator与要处理的类在不同的包中,所以该类必须声明为public,并且不只是具有包内访问权限。)(2)它必须具备默认的构造函数(无参构造函数)。
为了测试上面的BasicGenerator,我们需要创建一个类:
class CountedObject {private static long counter = 0;private final long id = counter++;// 用于记录创建对象的次数public long getId() {return id;}public String toString() {return "CountedObject" + id;}
}
输出结果:
CountedObject0
CountedObject1
CountedObject2
CountedObject3
CountedObject4
这篇关于java 一个通用的Generator——批量创建类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!