从静态函数中获取泛类
问题描述:
在泛型静态函数中,我只有泛型类型,可以获得泛型类之一的Class?从静态函数中获取泛类
这里我的代码:
public static <A extends ResultError, B, A1 extends ResultError, B1> Function1<Either<A, B>,
Either<A1, B1>> transformConnectorErrorVoToCommandError(Event event) {
return new AbstractFunction1<Either<A, B>, Either<A1, B1>>() {
@Override
public Either<A1, B1> apply(Either<A, B> parameter) {
if (parameter.isRight()) {
return mapsRightSide(parameter);
} else {
return mapsLeftSide(parameter, event, ${I NEED THE CLASS OF A HERE});
}
}
Either<A1, B1> mapsRightSide(Either<A, B> parameter) {
return right(parameter.right().get());
}
Right right(Object result) {
return new Right<>(result);
}
};
}
private static <A extends ResultError, B, A1 extends ResultError, B1> Either<A1, B1> mapsLeftSide(Either<A, B> parameter,
Event event,
Class<A1> outputErrorClass) {
initLazyMapperComponent();
A sourceError = parameter.left().get();
A1 destinyError = mapper.map(sourceError, outputErrorClass);
if (destinyError != null) {
return left(destinyError);
}
ExceptionUtil.throwNotHandledError(event, sourceError);
return null;
}
的一部分,我需要在代码是${I NEED THE CLASS OF A HERE}
我知道,在非静态函数it's可以,但不知道是否可以在一个静态的方式来完成。
问候。
该方法是否为“静态”并不重要。不可能。 – Holger
是啊,你可以https://*.com/questions/3437897/how-to-get-a-class-instance-of-generics-type-t – paul
你有一个答案的链接,做一些不同于需要一个'Class'对象,由知道类型的客户端代码提供(当然,它也可以使用'static'方法)? – Holger