void testK(ArrayList list) {
for (int y= list.size() ; y > 0 ; y--) {
Kostka kst = list.get(y -1);
}}
이 코드를 컴파일하려고, 그것은 (y -1)
(3 선)자바 - "에 대한 루프"- 호환되지 않는 유형의
- 하지만
list.size()
방법은 정수를 반환해야 호환되지 않는 것을 말한다 그래서 뭐가 문제 야?
void testK(ArrayList list) {
for (int y= list.size() ; y > 0 ; y--) {
Kostka kst = list.get(y -1);
}}
이 코드를 컴파일하려고, 그것은 (y -1)
(3 선)자바 - "에 대한 루프"- 호환되지 않는 유형의
list.size()
방법은 정수를 반환해야 호환되지 않는 것을 말한다 그래서 뭐가 문제 야?그러므로 당신은 당신이
Kostka kst = (Kostka) list.get(y -1);
캐스팅 할 필요가 있지만, 더 나은 당신은 캐스팅이 중
ArrayList<Kostka> list
지지 않도록 제네릭을 사용하여, 전달 된 ArrayList
에 대한 raw type를 사용하는 귀하의 타입에 의 결과
Kostka kst = (Kostka)list.get(y -1);
또는 제네릭 작동하고 당신이 당신의 코드를 작성 한 방법으로 당신의 방법
void testK(ArrayList<Kostka> list)
에 일반적인 목록을 제공의 get(y - 1)
는 Object
인스턴스를 반환합니다.
당신은 캐스팅해야 :
Kostka kst = (Kostka) list.get(y -1);
는 또한,
ArrayList
처럼 원시 타입을 사용하지 마십시오. 대신 일반 컬렉션 (
ArrayList<Kostka>
)을 사용하십시오.
먼저 ArrayList
에 제네릭을 사용하는 것이 좋습니다. 당신이 피할 수 있도록, 루프의 시작 -1
을 넣어 :
void testK(ArrayList<Kostka> list) {
for (int y= list.size() ; y > 0 ; y--) {
Kostka kst = list.get(y -1);
}}
같은
또는 개체를 캐스팅 할 필요는 타입 향상을위한 Kostka
void testK(ArrayList list) {
for (int y= list.size() ; y > 0 ; y--) {
Kostka kst = (Kostka)list.get(y -1);
}}
팁을 목록에서 가져온 루프에있는 list.size()
하위. 가능하면 Koska ksk
을으로 유지하십시오.
for (int y = list.size() - 1; y > 0; y--) {
final Kostka kst = list.get(y);
}
전체 스택 추적을 게시하십시오. – Doorknob
당신의'ArrayList'는 어떤 타입입니까? 그것은'ArrayList list'이어야합니다 –
@Doorknob 그는 컴파일러 오류 – pinkpanther