Unh*_*lig 1 java generics java-8
以下Interface允许我这样做displayReuestResponse<String>:
public interface RequestResponse<T>
{
void displayRequestResponse(T output);
}
Run Code Online (Sandbox Code Playgroud)
另一方面,以下Interface允许我通过LinkedHashSet或者ArrayList:
public interface RequestResponse<T>
{
void displayRequestResponse(Collection<T> output);
}
Run Code Online (Sandbox Code Playgroud)
我只是好奇,我们是否可以通过(调整)Interface可以接受这两种类型的方式使其更通用?或者这不可能吗?
用java 8你可以做类似的事情
interface RequestResponse<T> {
default void displayRequestResponse(Collection<? extends T> output) {
output.foreach(this::displayRequestResponse);
}
void displayRequestResponse(T output);
}
Run Code Online (Sandbox Code Playgroud)
因此,您不必实现在每个具体实现中采用集合的重载.
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |