package com.ssm.factory;
import java.util.Collection;
import java.util.List;
import java.util.Properties;
import org.apache.ibatis.reflection.factory.DefaultObjectFactory;
//自定义工厂类
public class MyObjectFactory extends DefaultObjectFactory {
private static final long serialVersionUID = -4114845625429965832L;
public T create(Class type) {
return super.create(type);
}
public T create(Class type, List<Class<?>> constructorArgTypes,
List constructorArgs) {
return super.create(type, constructorArgTypes, constructorArgs);
}
public void setProperties(Properties properties) {
super.setProperties(properties);
}
public boolean isCollection(Class type) {
return Collection.class.isAssignableFrom(type);
}
}
先看一遍完整代码,再详细解释一下。
public T create(Class type) {
return super.create(type);
}
是泛型,这里是随便放上一个T上去,是没有什么意义的,但是数据需要一个泛型,所以便添加了,后面的这个T表示返回值类型,也就是有了这个T之后就需要一个返回值的意思,create是继承DefaultObjectFactory里面的方法,Class是一个泛型,type是一个方法名,下面这个return super.create(type);应该不用多解释了吧,就是返回一个DefaultObjectFactory方法里面的创造一个值并且执行这个创造方法。
public T create(Class type, List<Class<?>> constructorArgTypes,
List constructorArgs)
type,constructorArgTypes,constructorArgs都是方法名来的,