Java通用类从类型参数中排除集合
我找到了一种正确的方法来实现我正在寻找的逻辑,但我很好奇为什么以下不起作用。 半小时的搜索没有得到答案,但有可能我没有正确地写出这个问题。
我想要做的是限制类型参数,以便不接受集合。 虽然我可以测试参数类型,但我宁愿让IDE指示Class不接受Collection作为类型参数。 我知道关键字排除不存在,但我希望它有助于说明手头的问题。
public class Foo { //TODO: Carry out Collectionist operations }
有没有办法在Java中这样做? 我认为这不是最佳实践,即使有可能,但我想满足我的好奇心,努力扩展我对generics的理解。
感谢您的时间和考虑!
不可能排除某些类型。 由于Java类型接口的方式,我可以简单地汇总我自己的具有完全相同操作的Collection
,并且不会被排除。
只是为了好奇,这是一个公平的问题,我不知道在编译时实现它的方法。 您可以在Foo
的构造函数中放置运行时检查。
这样的实现是不可能的。
当前版本的generics仅支持扩展或超级。 它不支持任何负面情况。