相关疑难解决方法(0)

将ArrayList <String>转换为String []数组

我正在android环境中工作,并尝试了以下代码,但它似乎没有工作.

String [] stockArr = (String[]) stock_list.toArray();
Run Code Online (Sandbox Code Playgroud)

如果我定义如下:

String [] stockArr = {"hello", "world"};
Run Code Online (Sandbox Code Playgroud)

有用.有什么东西我不见了吗?

java arrays arraylist

1102
推荐指数
6
解决办法
148万
查看次数

如何在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万
查看次数

在Java中将'ArrayList <String>转换为'String []'

我如何在Java中将ArrayList<String>对象转换为String[]数组?

java arrays string collections arraylist

962
推荐指数
14
解决办法
66万
查看次数

是否可以使用Java 8进行Android开发?

在网上搜索,目前尚不清楚Java 8是否支持Android开发.

在我下载/设置Java 8之前,有人可以在任何"官方"文档中指出我说Java 8是否支持Android开发.

java android java-8 android-gradle-plugin

594
推荐指数
12
解决办法
27万
查看次数

如何在Java中将List <Integer>转换为int []?

这类似于这个问题: 如何在Java中将int []转换为Integer []?

我是Java的新手.我怎么能转换List<Integer>int[]Java中?我很困惑,因为List.toArray()实际上返回一个Object[],可以强制转换为虚空Integer[]int[].

现在我正在使用循环来执行此操作:

int[] toIntArray(List<Integer> list){
  int[] ret = new int[list.size()];
  for(int i = 0;i < ret.length;i++)
    ret[i] = list.get(i);
  return ret;
}
Run Code Online (Sandbox Code Playgroud)

我相信有更好的方法可以做到这一点.

java arrays collections

545
推荐指数
11
解决办法
41万
查看次数

将Object数组转换为String数组会抛出ClassCastException

List<String> list = getNames();//this returns a list of names(String).

String[] names = (String[]) list.toArray(); // throws class cast exception.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么?任何解决方案,解释表示赞赏.

java arrays string object classcastexception

5
推荐指数
1
解决办法
1万
查看次数

在Java中将List [Object []>转换为Object [] []

如何在Java中将数组列表转换为二维数组?

//Prepare the list
List<Object[]> conf = new LinkedList<Object[]>();
conf.add(new Object[]{ "FOO", "BAR"});
conf.add(new Object[]{ "FOO", "BAR"});
Run Code Online (Sandbox Code Playgroud)

我试过了:

Object[][] array = (Object[][]) conf.toArray(new Object[0]);
Run Code Online (Sandbox Code Playgroud)

但它失败了ClassCastException:

java.lang.RuntimeException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [[Ljava.lang.Object;
Run Code Online (Sandbox Code Playgroud)

java arrays casting list classcastexception

3
推荐指数
1
解决办法
637
查看次数

将ArrayList <String>转换为String []

我怎么能转换ArrayList<String>String[]?我试图使用这段代码:

ArrayList<String> al = getResources()...; //getting string-array from values.xml
String[] data = new String[al.size()];

for (int i = 0; i != al.size(); i++) {
    data[i] = al.get(i);
}
Run Code Online (Sandbox Code Playgroud)

但它很慢.我怎么能更快地做到这一点?

java string arraylist

2
推荐指数
2
解决办法
483
查看次数

如何将枚举列表转换为字符串数组?

我有一个枚举数组,如下所示:

enum CountryEnum {
   MADAGASCAR,
   LESOTHO,
   BAHAMAS,
   TURKEY,
   UAE
}

List<CountryEnum> countryList = new ArrayList<>();
countryList.add(CountryEnum.MADAGASCAR);
countryList.add(CountryEnum.BAHAMAS);
Run Code Online (Sandbox Code Playgroud)

如何将我的转换countryListString[]

我试过这样:

String[] countries = countryList.toArray(String::new);
Run Code Online (Sandbox Code Playgroud)

但它又回到了我ArrayStoreException

java

0
推荐指数
1
解决办法
447
查看次数

可以优化动态对象创建的代码吗?

我有一个接受类参数的方法。我需要为任何类型的类创建此类对象的列表。每个类可能有一个带有不同数量参数的构造函数。

这就是我到目前为止所取得的成果。它有效,但显然它不够通用。这段代码有更通用的代码吗?

public List<Object> convertSeparatedListToJsonList(String pipedStr, String separatorRegex, Class c){

        try {

                Class<?> cCtor = Class.forName(c.getTypeName());

                List<String> valuesList = Stream.of(pipedStr.split(separatorRegex)).map(String::trim).collect(Collectors.toList());
                int valuesNumber = valuesList.size();

                switch (valuesNumber) {
                    case 1 -> {
                        Constructor<?> ctor = cCtor.getConstructor(String.class);
                        return List.of(ctor.newInstance(valuesList.get(0)));
                    }
                    case 2 -> {
                        Constructor<?> ctor = cCtor.getConstructor(String.class, String.class);
                        return List.of(ctor.newInstance(valuesList.get(0), valuesList.get(1)));
                    }
                    case 4 -> {
                        Constructor<?> ctor = cCtor.getConstructor(String.class, String.class, String.class, String.class);
                        return List.of(ctor.newInstance(valuesList.get(0), valuesList.get(1), valuesList.get(2), valuesList.get(3)));
                    }
                    case 5 -> {
                        Constructor<?> ctor = cCtor.getConstructor(String.class, String.class, String.class, String.class, String.class); …
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
77
查看次数