构造函数(Constructor)在对象创建或者实例化时候被调用的方法。通常使用该方法来初始化数据成员和所需资源。
源码
package java.lang.reflect;
/**
* 构造方法类。
*/
public final class Constructor<T> extends Executable {
/**
* 返回包含此构造方法的类。
*/
@Override
public Class<T> getDeclaringClass() {
return clazz;
}
/**
* 构造方法名。
*/
@Override
public String getName() {
return getDeclaringClass().getName();
}
/**
* 修饰符。
*/
@Override
public int getModifiers() {
return modifiers;
}
/**
* 获取参数类型。
*/
@Override
public Class<?>[] getParameterTypes() {
return parameterTypes.clone();
}
/**
* 获取异常。
*/
@Override
public Class<?>[] getExceptionTypes() {
return exceptionTypes.clone();
}
/**
* 初始化一个新对象。
*/
@CallerSensitive
public T newInstance(Object ... initargs)throws Exception {
if ((clazz.getModifiers() & Modifier.ENUM) != 0)
throw new IllegalArgumentException("Cannot reflectively create enum objects");
ConstructorAccessor ca = constructorAccessor;
if (ca == null) {
ca = acquireConstructorAccessor();
}
@SuppressWarnings("unchecked")
T inst = (T) ca.newInstance(initargs);
return inst;
}
/**
* 获取注解。
*/
public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
return super.getAnnotation(annotationClass);
}
/**
* 获取参数上的注解。
*/
@Override
public Annotation[][] getParameterAnnotations() {
return sharedGetParameterAnnotations(parameterTypes, parameterAnnotations);
}
}