Java 为什么类型param不会';t支持下限是否有不支持的具体原因 公共作废副本(T[]dest,T[]src){ 对于(T:src){ } }

Java 为什么类型param不会';t支持下限是否有不支持的具体原因 公共作废副本(T[]dest,T[]src){ 对于(T:src){ } },java,generics,Java,Generics,因为Java语言规范禁止它: 方法返回类型之前的称为“类型变量”,对于类型变量,只允许扩展 因为这毫无意义。如果一个方法适用于某些类型T及其所有超类型(包括Object),为什么它不适用于所有其他类型 如果该声明是允许的,那么您的方法所知道的关于src的一切就是它包含某种对象。具体来说,它不能假设src包含任何类型的编号。但是必须假设src包含Objects违背了泛型的目的,即允许对未知特定类型的对象进行类型安全操作 public <T super Number> void c

因为Java语言规范禁止它:

方法返回类型之前的
称为“类型变量”,对于类型变量,只允许
扩展

  • 因为这毫无意义。如果一个方法适用于某些类型
    T
    及其所有超类型(包括
    Object
    ),为什么它不适用于所有其他类型

    如果该声明是允许的,那么您的方法所知道的关于
    src
    的一切就是它包含某种
    对象。具体来说,它不能假设
    src
    包含任何类型的
    编号。但是必须假设
    src
    包含
    Object
    s违背了泛型的目的,即允许对未知特定类型的对象进行类型安全操作

  • public  <T super Number> void copy(T[] dest, T[] src) {
      for (T t : src) {
    
      }
    }