Java итеративная очередь, когда является членом класса - PullRequest
2 голосов
/ 29 января 2012

Есть ли способ перебрать переменные-члены объекта в Java?У меня такой сценарий:

class ItemToUpdateTipo0 {        
  public String        ticker;

  public ItemToUpdateTipo0() {
  }

  public ItemToUpdateTipo0(String ticker) {
    this.ticker = ticker;
  }
}


public class DataStoreTipo0 {        
  private Queue <ItemToUpdateTipo0> QueueItemToUpdateTipo0 = new ConcurrentLinkedQueue<ItemToUpdateTipo0>();
  ...
}

Есть способ сделать что-то вроде:

public static void main(String[] args){
  DataStoreTipo0 dataStoreTipo0 = new DataStoreTipo0();

  for (ItemToUpdateTipo0 obj : dataStoreTipo0) {
    System.out.println(obj.titolo);        
  }
}

Заранее спасибо.

1 Ответ

3 голосов
/ 29 января 2012

Пусть ваш класс реализует интерфейс Iterable, чтобы это работало.

Например,

class DataStoreTipo0 implements Iterable<ItemToUpdateTipo0> {
   private Queue<ItemToUpdateTipo0> queueItemToUpdateTipo0 = new ConcurrentLinkedQueue<ItemToUpdateTipo0>();

   @Override
   public Iterator<ItemToUpdateTipo0> iterator() {
      return queueItemToUpdateTipo0.iterator();
   }
}

Обратите внимание, что вы захотите отредактировать код так, чтобы он соответствовал соглашениям об именах Java.Например, классы должны начинаться с прописных букв, а методы и поля должны начинаться со строчных букв.Вы также не захотите пытаться получить прямой доступ к полям ItemToUpdateTipo0, а вместо этого использовать общедоступные методы получения и, возможно, установки для этого.

...