Java通用类从类型参数中排除集合

Idu*_*tus 6 java generics type-parameter

我找到了一种正确的方法来实现我正在寻找的逻辑,但我很好奇为什么以下不起作用.半小时的搜索没有得到答案,但有可能我没有正确地写出这个问题.

我想要做的是限制类型参数,以便不接受集合.虽然我可以测试参数类型,但我宁愿让IDE指示Class不接受Collection作为类型参数.我知道关键字排除不存在,但我希望它有助于说明手头的问题.

public class Foo<K excludes Collection, V>
{
  //TODO: Carry out Collectionist operations
} 
Run Code Online (Sandbox Code Playgroud)

有没有办法在Java中这样做?我认为这不是最佳实践,即使有可能,但我想满足我的好奇心,努力扩展我对泛型的理解.

感谢您的时间和考虑!

Ale*_*ler 3

排除某些类型是不可能的。由于 Java 类型接口的方式,我可以简单地汇总Collection具有完全相同操作的我自己的接口,并且不会排除它。

只是出于好奇,这是一个公平的问题,但我不知道在编译时实现它的方法。Foo您可以在 的构造函数中放置运行时检查。