在GWT项目中,我有一个带有此签名的方法:
public <H> HandlerRegistration addHandler(Event.Type<H> type, H handler)
在该方法中,我想要包含一些日志消息;具体来说,我想知道<H>
所以我可以记录传递的内容。 Java泛型类型擦除,正如它的工作方式,将其编译出来并有效地变为Object
。而且,作为GWT,我不能使用一些更高级的反射技术,因为它们与GWT不兼容。所以,如果我看了type.getClass().getName()
,就没有提到<H>
是什么。
有什么方法吗?
答案 0 :(得分:1)
我会在getClass().getName()
而不是handler
上致电type
。无论处理程序实现还是事件类型,这都应该有效。您将获得表示运行时类<H>
的Class对象。
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#getClass%28%29