Dynamiczny argument

Kategorie: programowanie.

Odkryłem pewną zależność w języku Java. Podałem jako argument listę czyli ArrayList i drugi argument jako zwykły String czyli ciąg znaków, następnie dodałem ten drugi argument do listy i co się okazało? Zawartość listy się zmieniła :D. To ciekawe bo można by było przypuszczać że tak nie będzie, a jednak :D.

package trawa;

import java.util.ArrayList;
import java.util.List;

public class Dynamiczny_Argument {

 public static void main ( String [] args ) {

  Dynamiczny_Argument argument = new Dynamiczny_Argument();

  List zrodlo = new ArrayList();
  String cel = "Siała baba mak";

  System.out.println("Źródło: " + zrodlo);
  System.out.println("Cel: " + cel);

  argument.wartosc (zrodlo, cel);

  System.out.println("Źródło: " + zrodlo);
  System.out.println("Cel: " + cel);

 }

 public void wartosc ( List zrodlo, String cel ) {

  zrodlo.add(cel);

 }

}

Wynik otrzymałem następujący.

Źródło: []
Cel: Siała baba mak
Źródło: [Siała baba mak]
Cel: Siała baba mak

Żródło to lista, a cel to wiadomość, obydwa obiekty są przesyłane jako argumenty metody :D.