相关疑难解决方法(0)

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

将Kotlin Array转换为Java varargs

如何将我的Kotlin转换Array为varargs Java String[]

val angularRoutings = 
    arrayOf<String>("/language", "/home")

// this doesn't work        
web.ignoring().antMatchers(angularRoutings)
Run Code Online (Sandbox Code Playgroud)

如何将ArrayList传递给varargs方法参数?

java interop kotlin kotlin-interop

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

将列表作为varargs传递

我有一个List<Thing>,我想将它传递给声明的方法doIt(final Thing... things).有没有办法做到这一点?

代码看起来事情是这样的:

public doIt(final Thing... things)
{
    // things get done here
}

List<Thing> things = /* initialized with all my things */;

doIt(things);
Run Code Online (Sandbox Code Playgroud)

该代码显然不能因为工作doIt()需要Thing不能List<Thing>.

有没有办法传入List作为varargs?

这是在Android应用程序中,但我不明白为什么该解决方案不适用于任何Java

java android list variadic-functions

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

如何将ArrayList传递给期望vararg(Object ...)的方法?

假设具有以下签名的方法:

public static void foo(String arg1, String args2, Object... moreArgs);
Run Code Online (Sandbox Code Playgroud)

跑步时......

ClassName.foo("something", "something", "first", "second", "third");
Run Code Online (Sandbox Code Playgroud)

......我会的moreArgs[0] == "first",moreArgs[1] == "second"而且moreArgs[2] == "third".

但是假设我将参数存储在一个包含"first","second"和"third" 的ArrayList<String>被调用arrayList中.

我想打电话foomoreArgs[0] == "first",moreArgs[1] == "second"并且moreArgs[2] == "third"使用arrayList作为参数.

我天真的尝试是......

ClassName.foo("something", "something", arrayList);
Run Code Online (Sandbox Code Playgroud)

......但这会给我moreArgs[0] == arrayList一些不是我想要的东西.

传递arrayList给上述foo方法的正确方法是什么moreArgs[0] == "first",moreArgs[1] == "second"以及moreArgs[2] == "third"

请注意,arrayList …

java

11
推荐指数
1
解决办法
6668
查看次数

Java自动将集合转换为参数数组?

我知道Java"..."数组参数语法可以作为参数接收数组,或只传递给方法的许多参数.但是,我注意到它也适用于Collections:

public static void main(String[] args) {
    Collection<Object> objects = new ArrayList<>();
    test(objects);
}

public static void test (Object...objects) {
    System.out.println("no compile errors");
}
Run Code Online (Sandbox Code Playgroud)

这编译并运行,我无需调用该toArray()方法.现场背后发生了什么?此语法是否有其他"自动转换"方法?

顺便说一下,我正在使用Java 1.7.

java variadic-functions

11
推荐指数
1
解决办法
1737
查看次数

如何在 Java 8 中将 List 转换为可变参数对象

我有一个函数 ( findByNames) 接受传播参数,如下例所示:

List<Users> findByNames(String... names)
{
  ...
} 
Run Code Online (Sandbox Code Playgroud)

作为参数,我有一个列表:

List<String> names = asList("john","abraham");
Run Code Online (Sandbox Code Playgroud)

所以我想将names列表转换为传播对象以使用findByNames函数,这可以使用 Java 8 吗?我试过这个解决方案:

MapUtils.getMap(names.toArray(new String[names.size()]))
Run Code Online (Sandbox Code Playgroud)

但它不起作用!

谢谢你的时间。

java arrays java-8

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