我正在阅读泛型,并尝试编写以下代码。没有编译错误。
import java.util.*;
public class JavaApplication14 {
    public<T>  void run (T obj ) {
        //Do Something
    }
  public static void main(String[] args) {     
      JavaApplication14  m= new JavaApplication14();
      m.run(new ArrayList<>());  
      m.run(new Interger(5);
      m.run(5);
     }
}如果函数是
 public<T extends Number>  void run (T obj) {
            //Do Something
        }这是有意义的,因为我们可以将这个函数的参数限制在一个数字及其子类型上。但我非常困惑,没有任何约束的函数“运行”意味着什么?现在可以用任何物体作为论据吗?在什么情况下,我需要在泛型中使用这样的函数?
发布于 2015-08-09 11:11:48
这里唯一有意义的是,如果这是某种伪抽象或基类,它为行为提供了框架,让另一个程序员实现自己的逻辑,但也提供了默认的空操作。
它可以允许更好地设置泛型类型,例如:
class MySubClass extends JavaApplication14 {
    public <T> void run(T obj){
        new ArrayList<T>().add(obj);
    }
}https://stackoverflow.com/questions/31903492
复制相似问题