您可以通过保留对
Class<E>类型的引用来实现。但是,我认为, 相等性测试应该针对对象表示的值,而不是针对这些值表示的具体类型 。
一个典型的例子是Collections API。
new ArrayList<String>().equals(newlinkedList<Object>())返回
true。尽管它们具有完全不同的类型,但是它们表示相同的值,即“空集合”。
就个人而言,
Tuple代表一个相同数据(例如
("a","b"))的两个s是否应该不相等,因为一个是类型,Tuple<String>而另一个是类型
Tuple<Object>?



