【问题标题】:Proper use of Spring's ResolvableType to determine generic type正确使用 Spring 的 ResolvableType 来确定泛型类型
【发布时间】:2019-08-26 15:52:38
【问题描述】:

我正在尝试使用 Spring 的 org.springframework.core.ResolvableType 在运行时确定参数化类型:

public class MyClass<T> implements MyInterface<T> {
    private final Class<T> typeClass;

    public CustomStateSerializer() {
        ResolvableType type = ResolvableType.forClass(getClass());
        ResolvableType genericType = type.getGeneric();
        this.typeClass= (Class<T>) genericType.resolve();
    }
}

...

new MyClass<MyType>();

不幸的是,genericType 结果为?。显然我没有正确使用它,而且我似乎找不到任何好的解决方案文档。

【问题讨论】:

    标签: spring generics types


    【解决方案1】:

    该类仅具有尚未定义的引用。所以你可以传递已经有特定的实例:

        ResolvableType type = ResolvableType.forClass(getClass(), this);
        this.typeClass = type.getGeneric(0).resolve();
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 2020-10-24
    • 2019-07-23
    • 2016-06-09
    • 2017-07-14
    • 2022-01-19
    相关资源
    最近更新 更多