我来自C#领域,并且刚刚了解Java中的erasure,这让我有点失望。真的没有办法在Java中区分SomeGenericInstance<String>SomeGenericInstance<Integer>运行时吗?

我问是因为我已经实现了一个超级简单的pub-sub框架,并且我想拥有一个通用类GenericMessage<T>。一定不要将GenericMessage<String>发送给GenericMessage<Integer>的侦听器。我尝试通过具有一个键-值对列表来实现它,其中键是代表消息类型的Class对象。但是此代码行产生true这是一个问题...:
new GenericMessage<Integer>().getClass.equals(new GenericMessage<String>().getClass())

最佳答案

据我所知,很抱歉,这根本不可能。

08-28 05:53