java - 参数隐藏类型

标签 java generics interface

<分区>

我有一个界面:

public interface Handler {
public <T> boolean shouldProcess(final T obj);

和实现:

public class SampleHandler implements Handler {
@Override
public <Long> boolean shouldProcess(final Long date) {
 return <some comparison>;
}

我收到“Long 类型参数隐藏了 Long 类型”。 我得到这个的原因是什么?

最佳答案

因为您没有使用具体类型 Long 实例化 T;您实际上是在声明一个名为 Long 的新类型变量,它与常规 Longs 同名,因此隐藏了它们。我怀疑你的意思是:

public interface Handler<T> {
  public boolean shouldProcess(final T obj);
}

public class SimpleHandler implements Handler<Long> {
  @Override
  public boolean shouldProcess(final Long date) {
    ...
  }
}

关于java - 参数隐藏类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52190822/

相关文章:

java - Java 中的字符串总是从 compareTo 返回某个结果?

JavaFX FilteredList 泛型 getPredicate()

java - Java中的内存高效稀疏数组

java - 有没有办法使用 JavaAPI 获取 ElasticSearch 上安装的插件列表?

ios - Swift:符合带有 "where"子句的通用方法协议(protocol)

java - 将泛型与实现相同接口(interface)的枚举类集合一起使用

android - 一个类(class)的多个听众

ios - iPhone 应用编程 : best element from the interface builder to display calculated values

java - "Attempting to use an incompatible return type"接口(interface)继承

java - Android studio - MainActivity 没有一遍又一遍地声明