如何解决有界类型作为方法参数?
我试图在抽象方法上强制执行特定的子类类型,如下所示:
public abstract class Searcher {
public abstract SearchResult search(<T extends SearchInput> searchInput);
}
这是为了确保 Searcher 的子类必须扩展 SearchInput 的相应子类。我知道我可以为方法的返回类型使用有界类型,但我似乎无法将其用作方法参数。这在 Java 中可行吗?
解决方法
看看关于泛型方法的Java documentation:
泛型方法的语法包括一个类型参数列表,在尖括号内,它出现在方法的返回类型之前。
您需要:
public abstract class Searcher {
public abstract <T extends SearchInput> SearchResult search(T searchInput);
}
重点是,泛型类型声明必须发生在签名部分之前。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。