ArrayList<String> list=new ArrayList<String>()与ArrayList<String> list=new ArrayList<>()(后面那个右边没有String)有何区别,运行都没有错误,把值改为其它类型一样报错