toArray(new String )中新的String 有什么用处;

嗨,我有这样的事情:

saved = getSharedPreferences("searches", MODE_PRIVATE); String[] mystring = saved.getAll().keySet().toArray(new String[0]); 

为什么我们需要toArray的参数new String[0]

Solutions Collecting From Web of "toArray(new String )中新的String 有什么用处;"

这样你才能得到一个String[] 。 没有任何参数的人会给你一个Object[]

看你有这个方法的2个版本:

  • Object[] toArray()
  • <T> T[] toArray(T[] a)

通过传递String[]数组,您正在使用通用版本。


传递String[]数组的一个更好的方法是用Set的大小初始化它,而不是大小为0,这样就不需要在方法中创build一个新的数组:

 Set<String> set = saved.getAll().keySet(); String[] mystring = set.toArray(new String[set.size()]); 

这是为返回提供一个types,并防止任何编译时含糊不清。

该方法调用的签名是: <T> T[] toArray(T[] a)

WHERE空参数一个是Object[] toArray()