泛型数组 @SafeVarargs 怎么使用?-灵析社区

七厦

import java.util.Arrays; public class Main { public static void main(String[] args) { String[] arr = asArray("one", "two", "three"); System.out.println(Arrays.toString(arr)); String[] firstTwo = pickTwo("one", "two", "three"); System.out.println(Arrays.toString(firstTwo)); } static K[] pickTwo(K k1, K k2, K k3) { return asArray(k1, k2); } @SafeVarargs static T[] asArray(T... objs) { return objs; } } ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/2d8d3915f41afe442801e15847b9c4ed.png) 调`pickTwo`报错:` class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.String; ` `@SafeVarargs` 怎么没效果呢?不是这样用的吗?

阅读量:21

点赞量:0

问AI
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List arr = asList("one", "two", "three"); System.out.println(arr); List firstTwo = pickTwo("one", "two", "three"); System.out.println(firstTwo); } static List pickTwo(K k1, K k2, K k3) { return asList(k1, k2); } @SafeVarargs static List asList(T... objs) { return new ArrayList(Arrays.asList(objs)); } }