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

  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011