有没有办法从反射中得到Class ?



有没有办法从反射中获得class ?我想做的是,我已经为hazelcast-3.2.3实现了自定义序列化器。我不想为每个类(我需要在Hcast中存储的对象)编写单独的序列化器。

我想要这个

class TestSerializer<T> {
 Class<T> classType;
 Public Test(){
  classType = T.someway() //if there is any method to get that;
}
}

因为我在hazelcast.xml中配置我的序列化器,所以不能在构造函数参数中传递Class

我想你实际上是在问如何在运行时获得泛型类型T的类,而不仅仅是一个类。

最简单的方法是将它作为参数传递给构造函数,但如果你真的真的想要用反射来做这件事,你可以使用一个技巧:Jackson使用依赖于匿名子类的which。要做到这一点,请阅读TypeReference的工作原理,特别是超级类型令牌 当然,在你想要做的事情上,我可能会非常偏离。如果我是,请纠正我:)

由于类型擦除,您的TestSerializer无法在内部获得该类型。这些信息必须由外部提供。

相关内容

  • 没有找到相关文章

最新更新