java – void foo(T t)和void foo(A a)之间的区别

说A是一个界面.有什么区别

public <T extends A> void foo(T t) { ... }

public void foo(A a) { ...}

最佳答案
不多.

另一方面,请考虑以下方法:

public <T extends A> T transform(T t);

和来电代码:

class B implements A { ... }
B result = transform(new B(...));

如果您将方法声明为,那么就不可能(上面不会编译,因为编译器会强制您将结果类型声明为A)

public A transform(A a)

转载注明原文:java – void foo(T t)和void foo(A a)之间的区别 - 代码日志