使用带有下限通配符的增强型for循环

Won*_*rld 1 java generics for-loop

我有这个for循环:

for (int j = 0; j < list.size(); j++) {
    System.out.print(list.get(j) + " ");
}
Run Code Online (Sandbox Code Playgroud)

该方法的签名是:

public static void addNumbers(List<? super Number> anoList)
Run Code Online (Sandbox Code Playgroud)

该列表声明为:

static List<? super Number> list2;
Run Code Online (Sandbox Code Playgroud)

要么

static List list2;
Run Code Online (Sandbox Code Playgroud)

对于这个问题.

到目前为止都很好.但随后Netbeans给出了将for循环转换为增强for循环的提示.当我申请时,我得到:

    for (? super Number anoList1 : anoList) {
        System.out.print(anoList1 + " ");
    }
Run Code Online (Sandbox Code Playgroud)

哪个不起作用并产生大量错误.对于一个:cannot find anoList1. expected,: expected,; expected.

我已经尝试了几个方法来摆脱错误,但没有一个是有效的.

enhanced for loop写这个的正确方法是什么?

从我读过的其他主题来看,建议不要使用根本就enhanced for loop让它保持原样.

Rad*_*def 6

这个增强的循环写入的正确方法是什么?

for (Object obj : anyList) {...}
Run Code Online (Sandbox Code Playgroud)

由于a List<? super Number>是可以是Number(包括Object)任何超类型的元素列表,因此我们对List的实际类型的唯一保证是Object.