in core/src/main/java/org/apache/commons/proxy2/stub/BaseTrainer.java [53:67]
protected BaseTrainer(Class<T> traineeType)
{
super();
if (traineeType != null)
{
this.traineeType = traineeType;
return;
}
@SuppressWarnings("unchecked") // T is this class's second type parameter; thus the raw type is Class<T>
final Class<T> resolvedVariable = (Class<T>) TypeUtils.getRawType(BaseTrainer.class.getTypeParameters()[1],
getClass());
Validate.isTrue(resolvedVariable != null, "Trainee type was not specified and could not be calculated for %s",
getClass());
this.traineeType = resolvedVariable;
}