有没有办法从反射中获得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
无法在内部获得该类型。这些信息必须由外部提供。