Wyświetlanie zawartości tablicy z obiektami za pomocą for each

0

Tak sobie wymyśliłem w ramach ćwiczeń by najpierw za pomocą tablic potworzyć obiekty, które będąw tablicy i na koniec wypisać je pętlą for each. Jak to zrobić?

// klasa pracownika **************************************************************
public class Pracownik {
	String imie;
	int wiek;

	Pracownik(){
		
	}
	
	Pracownik(String x, int y){
		imie = x;
		wiek = y;
	}
}

// klasa main **************************************************************
public class Test {
	public static void main(String args[]) {

		Pracownik[] pracownicy = new Pracownik[3];

		String[] imiona = { "Natalia", "Bartek", "Darek" };
		int[] wieki = { 27, 33, 36 };

// wypelnianie obiektow
		for (int i = 0; i < pracownicy.length; i++) {
			pracownicy[i] = new Pracownik(imiona[i], wieki[i]);
		}

// wyświetlanie obiektów
		for (Pracownik x : pracownicy) { // tutaj co zrobić by wypisywało mi wszystkie pola obiektów z tablicy
			System.out.println(x);
		}

	}

}
0

Napisz w klasie Pracownik metodę

public String toString(){
    return to_co_chcesz_wyświetlić;
}
0

@bogdans zrobiłem:

public class Test {
	public static void main(String args[]) {

		Pracownik[] pracownicy = new Pracownik[3];

		String[] imiona = { "Wojtek", "Bartek", "Darek" };
		int[] wieki = { 27, 33, 36 };

		for (int i = 0; i < pracownicy.length; i++) {
			pracownicy[i] = new Pracownik(imiona[i], wieki[i]);

		}
		for (Pracownik x : pracownicy) {
			System.out.println("imie=" + x.getImie() + " wiek=" + Integer.toString(x.getWiek()));
		}

	}

}

ale nie da się bez metody getWiek() / getImie ?

0

Można podejść bardziej generalnie
http://rextester.com/SOCO72569

class Pracownik {
  ...
  void show() throws IllegalAccessException {
      Field[] fs = this.getClass().getDeclaredFields();
      System.out.format("object: %s%n", this);
      for (Field field : fs)
      {
          //field.setAccessible(true);
          System.out.format("%s=%s|", field.getName(), field.get(this));
      }
      System.out.println();
  }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1