在Java中编写抽象代码,使用类型本身的信息创建实例。
1 | private <T> T createInstance (Class<T> clazz) { |
首先使用createInstance
,创建一个将成为实例化过程主体的函数。代码如下所示:
1 | func createInstance(typ reflect.Type) interface{} { |
该函数的参数是 reflect.Type
类型。 即使它是一个类型,如果它是一个interface{}
类型,任何东西都会放在参数中,所以reflect.Type
类型是绑定的。
使用createInstance()
创建的函数的调用的处理如下 :
1 | var u User |
可以reflect.TypeOf()
通过将声明的变量作为参数reflect.Type
来获得类型的对象。将此createInstance()
传递给函数。