Dav*_*iel 1 java generics java-8
我有两种不同的方法
public static void printRoutes(List<Optional<String>> routes) {
for (int i = 0; i < routes.size(); i++) {
if(routes.get(i).isPresent()) {
System.out.println("Output #" + (i+1) + ": "+routes.get(i).get());
Run Code Online (Sandbox Code Playgroud)
和
public static void printRoutes(List<Optional<Integer>> routes) {
for (int i = 0; i < routes.size(); i++) {
if(routes.get(i).isPresent()) {
System.out.println("Output #" + (i+1) + ": "+routes.get(i).get());
Run Code Online (Sandbox Code Playgroud)
如您所见,它们基本相同,但参数类型相同。由于我只是打印它们,所以使用“ .toString()”方法,我认为应该有一种对两者使用相同方法的方法。
我尝试过
public static void printRoutes(List<Optional<T super Object>> lengths)
Run Code Online (Sandbox Code Playgroud)
和
public static void printRoutes(List<Optional<T extends Object>> lengths)
Run Code Online (Sandbox Code Playgroud)
但这是行不通的,有办法吗?否则您将无法使用泛型。
您将需要声明type参数T;并且super Object或extends Object不必要:
public static <T> void printDistances(List<Optional<T>> lengths)
Run Code Online (Sandbox Code Playgroud)
请参见Oracle Java教程中的泛型方法。
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |