可变参数的一个警告问题

时间:2021-04-14 17:04:56
public class Test {
 public static void main(String[] args) throws Exception {
  List<String> list = new ArrayList<String>();
  list.add("aa");
  bb(list);
 }

 private static void bb(List<String>... list){
  list[0].add("bb");
 }
}

想问下为什么bb(list)这句会有个警告信息:
Type safety : A generic array of List<String> is created for a varargs parameter

5 个解决方案

#1


受检警告么 很常见的 
这样就没了:
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
List<String> list = new ArrayList<String>();
list.add("aa");
bb(list);
}

#2


顶起...........

#3


再顶起一下。。。

#4


引用楼主 dj4kobe 的回复:
public class Test {
 public static void main(String[] args) throws Exception {
  List<String> list = new ArrayList<String>();
  list.add("aa");
  bb(list);
 }

 private static void bb(List<Stri……

因为该方法为static方法.建议Test.bb(list);
this.bb(list);会出现警告,因为系统建议格式如上

#5


引用 4 楼 ark032425 的回复:
引用楼主 dj4kobe 的回复:
public class Test {
public static void main(String[] args) throws Exception {
List<String> list = new ArrayList<String>();
list.add("aa");
bb(list);
}

private static void b……


改成Test.bb(list);也一样的警告;

另外
把bb改成非static方法,在main 中
Test test = new Test();
test.bb(list);
也会警告

#1


受检警告么 很常见的 
这样就没了:
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
List<String> list = new ArrayList<String>();
list.add("aa");
bb(list);
}

#2


顶起...........

#3


再顶起一下。。。

#4


引用楼主 dj4kobe 的回复:
public class Test {
 public static void main(String[] args) throws Exception {
  List<String> list = new ArrayList<String>();
  list.add("aa");
  bb(list);
 }

 private static void bb(List<Stri……

因为该方法为static方法.建议Test.bb(list);
this.bb(list);会出现警告,因为系统建议格式如上

#5


引用 4 楼 ark032425 的回复:
引用楼主 dj4kobe 的回复:
public class Test {
public static void main(String[] args) throws Exception {
List<String> list = new ArrayList<String>();
list.add("aa");
bb(list);
}

private static void b……


改成Test.bb(list);也一样的警告;

另外
把bb改成非static方法,在main 中
Test test = new Test();
test.bb(list);
也会警告