有界类型作为方法参数?
Bounded type as method parameter?
我试图在抽象方法上强制执行特定的子类类型,如下所示:
public abstract class Searcher {
public abstract SearchResult search(<T extends SearchInput> searchInput);
}
这是为了确保 Searcher 的子类必须扩展 SearchInput 的相应子类。我知道我可以为方法的 return 类型使用有界类型,但我似乎无法将其用作方法参数。这在 Java 中可行吗?
看看 Java documentation 关于 通用方法 :
The syntax for a generic method includes a list of type parameters, inside angle brackets, which appears before the method's return type.
你需要:
public abstract class Searcher {
public abstract <T extends SearchInput> SearchResult search(T searchInput);
}
要点是,泛型类型声明必须发生在签名部分之前。
我试图在抽象方法上强制执行特定的子类类型,如下所示:
public abstract class Searcher {
public abstract SearchResult search(<T extends SearchInput> searchInput);
}
这是为了确保 Searcher 的子类必须扩展 SearchInput 的相应子类。我知道我可以为方法的 return 类型使用有界类型,但我似乎无法将其用作方法参数。这在 Java 中可行吗?
看看 Java documentation 关于 通用方法 :
The syntax for a generic method includes a list of type parameters, inside angle brackets, which appears before the method's return type.
你需要:
public abstract class Searcher {
public abstract <T extends SearchInput> SearchResult search(T searchInput);
}
要点是,泛型类型声明必须发生在签名部分之前。