2017-12-30 29 views
-2

の配列リストをforeachのためにJavaができない:エラー:私は、カスタムクラスのオブジェクトの配列リストをforeachのためにしようとすると、私は次のエラーを取得するカスタムクラス(非互換タイプ)

「互換性のない型:(オブジェクト)はArrayListに変換できません。 "

this oneのような他のいくつかの投稿を読んだ後、私はちょうど鋳造が行方不明であったり、オブジェクトの型を明示的に宣言していると思っていました。しかし、それを修正した後も問題は解決されません。

ArrayList<Room> roomList = new ArrayList<Room>(); 

for (final ArrayList room: roomList) 

何が欠けていますか?違いがある場合は、私のIDEとしてthisオンラインコンパイラを使用しています。

import java.io.*; 
import java.util.*; 
class SchedulingApplication 
{ 
    ArrayList<Room> roomList = new ArrayList<Room>(); 
    int roomCount = 0; 
static class Meeting 
{ 
    double startTime; 
    double endTime; 
} 
static class Room 
{ 
    int roomNumber = 0; 
    ArrayList<Meeting> meetingList = new ArrayList<Meeting>(); 
} 


void addNewMeeting(double start, double end) 
{ 
    Meeting meeting = new Meeting(); 
    checkConflict(meeting); 
    return; 

} 

void addNewRoom(int number) 
{ 
    Room room = new Room(); 
    room.roomNumber = number; 
    roomCount++; 
    roomList.add(room); 
} 
int checkConflict(Meeting newMeeting) 
{ 
    //boolean isScheduled = false; 
    boolean isConflict = false; 
    if (roomCount == 0) 
    { 
     roomCount++; 
     return roomCount; 
    } 
    else 
    { 
      for (final ArrayList room: roomList) 
      { 
       isConflict = false; 
       for (final ArrayList oldMeeting: room.meetingList()) 
       { 
        //see if the new meeting starts during all of the old meetings in this room 
        if (newMeeting.startTime > oldMeeting.startTime && newMeeting.startTime < oldMeeting.endTime) 
        { 
         isConflict = true; 
         break; 
        } 
       } 
       if (!isConflict) 
       { 
        //isScheduled = true; 
        return room.roomNumber(); 
       } 
      } 

    } 

} 

    public static void main (String[] args) { 




} 

}

+4

ヒント: 'room'は' ArrayList'ですか? –

+0

この種のループの公用語は、 "for for loop"です。あなたがGoogleの場合は、正しい方法を書いているチュートリアルを簡単に見つけることができます。 – ajb

答えて

2

for (Room room : roomList)ないfor (ArrayList room : roomList)

+0

これはそれでした。私はそれが何か単純だと思った。 2番目の目をありがとう! – Mexifry

2

あなたroomList ArrayListには型ルームのデータを運びます。したがって、forEachループでそのarrayListからデータを取得するときは、Roomタイプの参照でそれを受け取る必要があります。

for (Room room: roomList){ 
    //your code 
} 
関連する問題