如何使用来自hashset的参数调用方法?

时间:2015-01-24 10:26:56

标签: java android collections hashset

  static public void Configure( Activity activity,String client_options,
        String app_id, String... zone_ids )

我有这个包含多达500个元素的哈希集。

如何使用hashset的每个元素作为满足zone_ids参数的参数调用Configure()?

1 个答案:

答案 0 :(得分:1)

不幸的是,你需要将集合转换为数组 - 这很容易做到,但效率很低:

Configure(activity, options, appId, zoneIdSet.toArray(new String[0]));

new String[0]可以被new String[zoneIdSet.size()]取代,效率稍高一些。您必须传入一个数组来绕过Java的类型擦除,以便它可以构建一个正确类型的数组。

你说你无法控制这个方法 - 如果你可以,那么有两个重载就更清楚了:

public void configure(Activity activity, String clientOptions,
    String appId, Iterable<String> zoneIds) {
    // Actual work here
}

// Convenience overload
public void configure(Activity activity, String clientOptions,
    String appId, Iterable<String> zoneIds) {
    configure(activity, clientOptions, appId, Lists.asList(zoneIds));
}

然后你只需将数组“包装”在一个列表中,使其成为Iterable<String>