in 限制泛型类,内部使用的范围,仅可作为消费者使用,也就是仅能作为入参,不能作为返回值。 out 限制泛型类,内部使用的范围,仅可作为生产者使用,也就是仅能作为返回值,不能作为入参。同时,可以支持协变。 例如: val s :List<Any>= ArrayList<out T>