我试图定义一个泛型方法,其参数由两种类型绑定,但它似乎不起作用:
public static <T extends Readable, Appendable> void doSomething(T t) {
int r = t.read(...); // compiles OK
//
t.append(...); // compile error
}
Run Code Online (Sandbox Code Playgroud)
这应该编译.谁能看到我做错了什么?
Boh*_*ian 11
问题是该方法定义了两个参数,一个是被调用的T,一个是被调用的Appendable,而不是一个带有两个边界的参数.
逗号应该是&符号,如下所示:
public static <T extends Readable & Appendable> void doSomething(T t) {
//
}
Run Code Online (Sandbox Code Playgroud)