Java 在静态函数中从泛型获取类

Java 在静态函数中从泛型获取类,java,java-8,Java,Java 8,有一个泛型静态函数,其中我只有泛型类型,有可能得到其中一个泛型的类吗 这是我的代码: public static <A extends ResultError, B, A1 extends ResultError, B1> Function1<Either<A, B>, Either<A1, B1>> transformConnectorErrorVoToCommandError(Event event)

有一个泛型静态函数,其中我只有泛型类型,有可能得到其中一个泛型的类吗

这是我的代码:

     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;
    }
公共静态函数1 TransformConnectorErrorToCommandError(事件){
返回新的AbstractFunction1(){
@凌驾
公共或应用(或参数){
if(parameter.isRight()){
返回mapsRightSide(参数);
}否则{
返回mapsLeftSide(参数,事件,${I需要一个HERE}的类);
}
}
任一贴图右侧(任一参数){
返回right(parameter.right().get());
}
右-右(对象结果){
返回新的权限(结果);
}
};
}
私有静态或mapsLeftSide(或参数,
事件,
类outputErrorClass){
initLazyMapperComponent();
sourceError=parameter.left().get();
A1 destinyError=mapper.map(sourceError,outputErrorClass);
如果(destinyError!=null){
返回左(destinyError);
}
例外直到ThrownothandleError(事件,sourceError);
返回null;
}
我在代码中需要的部分是
${我需要一个HERE}的类
,我知道在一个非静态函数中,它是可能的,但不知道是否可以以静态方式完成


问候。

不,你不能在那里获得
A
类。它在运行时被全部擦除

典型的选项是从
A
实例的值中获取
A
的类型,该值可能在
参数中


或者将
类别a
作为进一步的参数传递。

否,您无法在此处获取
类别a
。它在运行时被全部擦除

典型的选项是从
A
实例的值中获取
A
的类型,该值可能在
参数中


或者通过
Class a
作为进一步的参数。

是的,这就是我要做的。我只是想知道有没有什么神奇的方法XD@paul不。不,是的,我就是这么做的。我只是想知道有没有什么神奇的方法XD@paul不。不,不管方法是否是静态的。这是不可能的。是的,你可以这样做:你有一个指向答案的链接,它做的事情不同于需要一个
对象,该对象由知道类型的客户端代码提供(当然,它也可以与
静态
方法一起使用)?该方法是否为
静态
并不重要。这是不可能的。是的,你可以这样做:你有一个指向答案的链接,该链接的作用不同于需要一个
对象,该对象由知道类型的客户机代码提供(当然,这也适用于
静态
方法)?