相关疑难解决方法(0)

如何在Java中创建通用数组?

由于Java泛型的实现,您不能拥有这样的代码:

public class GenSet<E> {
    private E a[];

    public GenSet() {
        a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在保持类型安全的同时实现这一点?

我在Java论坛上看到了这样的解决方案:

import java.lang.reflect.Array;

class Stack<T> {
    public Stack(Class<T> clazz, int capacity) {
        array = (T[])Array.newInstance(clazz, capacity);
    }

    private final T[] array;
}
Run Code Online (Sandbox Code Playgroud)

但我真的不知道发生了什么.

java arrays generics reflection instantiation

1045
推荐指数
15
解决办法
74万
查看次数

如何将Set <String>转换为String []?

我需要得到一个String[]出来的Set<String>,但我不知道该怎么做.以下失败:

Map<String, ?> myMap = gpxlist.getAll();
Set<String> myset = myMap.keySet();
String[] GPXFILES1 = (String[]) myset.toArray(); // Here it fails.
Run Code Online (Sandbox Code Playgroud)

我该如何修复以使其有效?

java

269
推荐指数
4
解决办法
26万
查看次数

如何在Java中初始化长度为0的String数组?

该方法的Java Docs
String[] java.io.File.list(FilenameFilter filter)
在返回描述中包含以下内容:

如果目录为空或过滤器未接受任何名称,则该数组将为空.

我如何做类似的事情并初始化一个String数组(或任何其他数组)的长度为0?

java arrays initialization

127
推荐指数
4
解决办法
28万
查看次数