小编doc*_*ter的帖子

具有泛型的代码将无法编译

我没有谷歌这个问题.为什么这一行会产生编译错误.

wrapper.doSmth(wrapper.getCurrent());
Run Code Online (Sandbox Code Playgroud)

我正在使用java 7.

public class App {
 Wrapper<?> wrapper;

 class Generic<T>{

 }

 class Wrapper<T>{
  Generic<T> current;

  public void doSmth(Generic<T> generic){
  }

  public Generic<T> getCurrent(){
   return current;
  }
 }

 public void operation(){
  wrapper.doSmth(wrapper.getCurrent());
 }
}
Run Code Online (Sandbox Code Playgroud)

错误是:

Error:(25, 24) java: method doSmth in class App.Wrapper<T> cannot be applied to given types;
  required: App.Generic<capture#1 of ?>
  found: App.Generic<capture#2 of ?>
  reason: actual argument App.Generic<capture#2 of ?> cannot be converted to conf.App.Generic<capture#1 of ?> by method invocation conversion
Run Code Online (Sandbox Code Playgroud)

java generics

5
推荐指数
1
解决办法
92
查看次数

标签 统计

generics ×1

java ×1