2010-08-24 6 views
0

J'ai une méthode qui ressemble à ceJava Liste des paramètres de type

public void setDayIntervals(Days day, List<HourRange> ranges) { 
     int hourMask = 0; 
     for (HourRange intRange : ranges) { 
        int Start= intRange.getStart(); 
        int end = intRange.getEnd(); 
      } 
     } 

} 

Je dois passer Liste des rangs d'une autre classe.

for(int s = 0; s < adSchedule.getTargets().length ; s++){ 
     List<HourRange> ranges = null; 
     int Start = adSchedule.getTargets(s).getStartHour(); 
     int end = adSchedule.getTargets(s).getEndHour()-1; 
      if(adSchedule.getTargets(s).getDayOfWeek()==DayOfWeek.MONDAY){ 
       // ranges ????????? here i have to pass values Start and End 
       CamSchedule.setDayIntervals(Days.ONE, ranges); 
      } 
    } 

Quelqu'un peut-il me dire comment passer des plages dans la méthode ci-dessus setDayIntervals(Days.one, ramges)

public static class HourRange { 
     int start; 
     int end; 

     public HourRange(int start, int end) { 
      super(); 
      if(start > end) 
       throw new IllegalArgumentException(); 
      this.start = start; 
      this.end = end; 
     } 

     public int getStart() { 
      return start; 
     } 

     public int getEnd() { 
      return end; 
     } 
} 
+0

À quoi ressemble le constructeur de la classe HourRange? –

+0

Est-ce que ce sont les devoirs ou maintenez-vous le code de quelqu'un d'autre? – BalusC

+0

pour 'HourRange': vous n'avez pas besoin d'appeler' super() 'car' HourRange' ne contient rien d'autre que 'Object'. Et vous pouvez ajouter des modificateurs 'private' à' start' et 'end' pour rendre la classe immuable (sauf si quelqu'un utilise des trucs sales comme la réflexion ..) –

Répondre

2

Vous devez créer un objet HourRange et l'ajouter à la liste. Quelque chose comme ceci:

ranges.add(new HourRange(Start, end)); 

L'exemple suppose que HourRange a ce constructeur:

public HourRange(int start, int end) { 
    // code to copy start and end to internal fields. 
} 

(il a ce constructeur)

+0

et @Dean merci les gars vous avez fait ma journée .. U gars rock .. – jimmy

0

Au lieu de

List<HourRange> ranges = null;

vous voulez probablement

List<HourRange> ranges = new ArrayList<HourRange>();

Cela vous donne une liste d'ajouter; jusqu'à ce que vous initialisiez les plages comme une liste, rien ne peut entrer dans cette liste.

+0

Ou dans ce cas, juste 'Collections.singletonList (new HourRange ...' –

Questions connexes