package st.gravel.support.jvm;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public abstract class AbstractBlock<R> {
@SuppressWarnings("unchecked")
public Class<R> getResultClass() {
Type type = getClass().getGenericSuperclass();
if (type instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) type;
Type[] typeArguments = parameterizedType.getActualTypeArguments();
return (Class<R>) typeArguments[0];
}
throw new RuntimeException("Could not detemine returntype");
}
}