SORU
11 ŞUBAT 2013, PAZARTESİ


Nasıl bir sınıf içinde özel bir alan değişikliği engellerim?

Bu Dersim var düşünün:

public class Test
{
  private String[] arr = new String[]{"1","2"};    

  public String[] getArr() 
  {
    return arr;
  }
}

Şimdi, yukarıdaki sınıfı kullanan başka bir Dersim var:

Test test = new Test();
test.getArr()[0] ="some value!"; //!!!

Yani sorun bu: dışarıdan bir sınıfın özel bir alan ulaştım! Bunu nasıl önleyebilirim? Yani nasıl bu dizi değişmez yapabilir miyim? Bu her alıcı yöntemi ile özel alan erişim geliştirebilirsin anlamına mı geliyor? (Guava gibi herhangi bir kütüphane istemiyorum. Ben sadece bunu) doğru şekilde bilmeniz gerekir.

CEVAP
11 ŞUBAT 2013, PAZARTESİ


Bir dönüş gerekirkopyaladizinizi.

public String[] getArr() {
  return arr == null ? null : Arrays.copyOf(arr, arr.length);
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fufko

    fufko

    27 ŞUBAT 2006
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • TurkishRoyal

    TurkishRoyal

    16 Ocak 2007