java根据类别返回数组如何返回
时间: 2023-08-14 08:03:14 浏览: 54
您可以使用Java中的泛型来返回指定类型的数组。以下是一个示例方法,该方法根据给定的类别返回相应的数组:
```java
public static <T> T[] getArrayByType(Class<T> type, List<Object> list) {
List<T> filteredList = new ArrayList<>();
for (Object obj : list) {
if (type.isInstance(obj)) {
filteredList.add(type.cast(obj));
}
}
@SuppressWarnings("unchecked")
T[] array = (T[]) Array.newInstance(type, filteredList.size());
return filteredList.toArray(array);
}
```
调用此方法时,您需要传递一个Class对象和一个包含要筛选的对象的List。例如,如果您想要返回一个字符串数组,您可以像这样调用该方法:
```java
List<Object> list = Arrays.asList("hello", 123, "world");
String[] stringArray = getArrayByType(String.class, list);
```
在这个例子中,只有 "hello" 和 "world" 会被添加到过滤后的列表中,因为它们是字符串。最后,该方法将返回包含过滤后的字符串的数组。