Arrays.asList()
示例
长话短说,相信如果看到此文章的人,也一定都被Arrays.asList所折腾过,那么到底是什么原因呢?我们直接源码走起。
/*
*是否报错:不报错
*原因:通过Arrays.asList获取的集合并没有涉及到使用,只是简单的转换。
*/
String[] roles =new String[]{"1","2","3"};
List<String> list =Arrays.asList(roles);
/*
*是否报错:不报错
*原因:通过Java.util包下的ArrayList的有参构造器进行了一个新的构建,
*具体可以查看源码(具体步骤:获取参数、转换数组、类型比较、数据copy)。
*/
String[] roles =new String[]{"1","2","3"};
List<String> list=new ArrayList(Arrays.asList(roles));
list.add(xx);
/*
*是否报错:报错
*原因:我们可以仔细查看Arrays.asList(xx)方法所返回的ArrayList是一个什么样的对象。
*/
String[] roles =new String[]{"1","2","3"};
List<String> list =Arrays.asList(roles);
list.add(xxx);
仔细看返回的ArrayList对象并不属于Java.util包下的,而是属于java.util.Arrays包下的,并且java.util.Arrays包下的ArrayList是一个私有的静态内部类,它并没有包含集合的添加系列的方法,所以当我们调用add方法或addAll等等一系列方法的时候就会出现问题。(未知的错误)
nginx
underscores_in_headers on参数
nginx请求头转发的时候是不支持_(下划线)参数的,所以需要做参数配置,或修改请求头参数,如果不想修改请求头参数,则需要配置nginx的参数,underscores_in_headers参数,设置为on。