用Java动态扩展泛型类

时间:2013-06-03 10:21:24

标签: java dynamic reflection

我需要在运行时扩展一个带有通用签名的类。

例如,要扩展的类是:

public class A<T> {}

我需要动态地获取它:

public class B extends A<String> {}

我不能使用Proxy因为我需要将获得的类添加到ClassLoader中。我尝试使用javassist,但我不知道如何以正确的方式使用它。

1 个答案:

答案 0 :(得分:0)

如果仅在运行时知道类型,则必须使用强制转换。 像:

 class TokenCounterMapper 
    extends Mapper<Object, Object, Object, Object>{
     public void map(Object key, Object value, Context context){
    if (value instanceOf String){    
String castedString = (String)value;
        ...
        }
        }
        }