Java - "for-loop" - 不兼容的类型

use*_*921 1 java for-loop arraylist

void testK(ArrayList list) {
        for (int y= list.size() ; y > 0 ; y-- ) {
            Kostka kst = list.get(y -1); 
        }}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译这段代码时,它说(y -1)(第3行)是不兼容的

  • 但该list.size()方法应该返回一个整数,那么问题是什么?

Rei*_*eus 10

您使用的是原始类型ArrayList传递,因此,你需要转换

Kostka kst = (Kostka) list.get(y -1); 
Run Code Online (Sandbox Code Playgroud)

但最好使用泛型来避免施法

ArrayList<Kostka> list
Run Code Online (Sandbox Code Playgroud)


Uwe*_*nus 7

您必须将结果转换list.get()为您的类型

Kostka kst = (Kostka)list.get(y -1);
Run Code Online (Sandbox Code Playgroud)

或使用泛型并为您的方法提供通用列表

void testK(ArrayList<Kostka> list)
Run Code Online (Sandbox Code Playgroud)