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

  • Britec09

    Britec09

    4 Mart 2009
  • jcortes187

    jcortes187

    24 Mart 2006
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007