SORU
1 Temmuz 2009, ÇARŞAMBA


Java parametreleri başvuruyla geçebilir miyim?

Anlambilim C#'ler . benzer isterim ^strong>refanahtar kelime.

CEVAP
1 Temmuz 2009, ÇARŞAMBA


Java çünkü kafa karıştırıcıher şeyin değeri tarafından geçirilir. Ancak bir parametre içinreferans türü(ilkel türde bir parametre gibi)başvuru kendisinideğer, dolayısıyla geçirilirgörünürreferans olarak geçmek (ve daha sık olduğunu iddia ediyor). Bu aşağıdaki gösterdiği gibi, değil:

Object o = "Hello";
mutate(o)
System.out.println(o);

private void mutate(Object o) { o = "Goodbye"; } //NOT THE SAME o!

Baskı Hello konsola. Yukarıdaki kod istiyorsan seçenekleri yazdırmak için Goodbyeaçık bir başvuru kullanınaşağıdaki gibi

AtomicReference<Object> ref = new AtomicReference<Object>("Hello");
mutate(ref);
System.out.println(ref.get()); //Goodbye!

private void mutate(AtomicReference<Object> ref) { ref.set("Goodbye"); }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • nigahiga

    nigahiga

    21 Temmuz 2006
  • The Brister

    The Brister

    10 ŞUBAT 2008