public class VarargsParamVsLocalVariable {
static void f(List<String>... stringLists) {
// compiles fine! No problems in Runtime as well.
Object[] array = stringLists;
}
//but the same fails if List<String> is not a vararg parameter
public static void main(String[] args) {
List<String> stringLists;
List<String> stringLists1 = new ArrayList<>();
//below lines give: "cannot convert from List<String> to Object[]"
Object[] array = stringLists; // compile error!
Object[] array1 = stringLists1; // compile error!
}
}
// Why I can assign List<String> variable to Object[] variable if List<String> variable is a vararg parameter?
如果List變量是可變參數參數,爲什麼我可以將List變量賦值給Object []變量?爲什麼要編譯「List <String> lst; Object [] o = lst;」如果列表<String>是可變參數?
這是因爲'stringLists'是類型的'列表 []'的可變參數。 –
marstran
http://stackoverflow.com/questions/35455230/an-array-of-strings-vs-string-varargs的副本? –