捕获匿名类中的类型参数

时间:2016-10-06 08:19:45

标签: java generics type-parameter

我想动态创建一个实现给定给定接口的类,并绑定该接口的类型参数。这是我的界面定义:

public interface Container<T> {}

我最初的想法是为此使用匿名类,如下所示:

public <T> Class<?> getContainerImplementationForType(Class<T> type) {
    return new Container<T> { ... }.getClass();
}

但是,如果我检查返回的类对象,则此实现的类型参数T不会绑定到作为type传递的任何内容,但它仍然只是一个类型变量T

我有一个模糊的想法,为什么这不起作用,但我想知道如何实现我的目标。是使用ASM手动创建类型,ByteBuddy还是类似的方式去?我认为动态代理也不会起作用,因为在获取代理类时我找不到为Container指定类型参数边界的方法。

0 个答案:

没有答案