2010-11-08 7 views
5

Eclipse adında bir java derleyicisi ayarı vardır uyarı/hata ayarlanabilir "alanına beyanı başka bir alana veya değişken gizler".Kullanımı "alanı beyanı başka bir alana veya değişken gizler"?

sizce bu uyarı ne kadar önemli?

Bu sorunu çözmenin iyi bir standart yolu nedir?

Bu durumda nerede

Kod örneği: alanında, yani "fCaption" yeniden adlandırılır, ama bu otomatik alıcılar neden olacağı durumlarda

public class Test { 
    private String caption = null; 

    public Test(String caption) { // here 
    this.caption = caption; 
    } 
} 

gördüğüm çözümler/genereated edilebilir belirleyiciler tuhaf olması isimler (getfCaption()). okunmaz, ama çirkin değil ...

Düzenleme: Oh evet, Test(String caption_) veya benzer bir şey metod imzası adlandırmak olasılığı vardır, ama bu garip görünümlü javadoc içinde sona ereceğini.

+0

Benimki hiç şikayet etmiyor .... –

cevap

6

Bu, benim düşüncemde çok yararlı bir seçenek ve derleyici uyarısı göstermesi için etkinleştirilmelidir. ayrıca yanlış pozitif önlemek için etkinleştirmek/kurucular ve odaklar/belirleyiciler içinde devre dışı bırakmak için (en azından, Java EE özelliği 1.2.2 3.5.2 Eclipse benim sürümde) bir seçenek yoktur.

eclipse compiler settings

+0

Anlaşmalı, ad gölgeleme, özellikle herhangi bir sınıf değişkenini önek için bu anahtar sözcüğünü kullanmıyorsanız, ince hatalara neden olabilir. Ancak, kurucular ve belirleyiciler/Ancak getters –

+0

için aptalca geliyor: adı gölgelendirme yapmamak çok ince hatalara neden olabilir. Diğer bir yöntem, bir parametrenin bir parametreden ziyade bir alana erişmesi gibi, insanlar bir parametrenin bir _p son ekine sahip olduğu sözleşmeleri uygularlarsa, ancak bunu uygulamalarında unuturlarsa. – zedoo

1

Sadece bu uyarıyı devre dışı bıraktığınızı söyleyebilirim - bu, konvansiyonunuzda kullanılmıyor gibi görünüyor. Ve varsayılan olarak göz ardı edilir.

+0

Tutulması varsayılan olarak devre dışı bırakılmış bir ayardır. Tercihler doğrultusunda, Java - derleyici - hatalar/uyarılar, "ad gölgeleme ve çakışmalar" altında – Fredrik

0

Bunları "Hata" olarak ayarlanmış tutun. Bir sınıf ve ana ikisi de aynı adı taşıyan bir alan varsa ben henüz değiştirmek gibi görünüyor asla alana bir değer atama gibi görünüyor neden benim herhangi bir zaman anlamaya çalışıyorum kaybetmek istemiyorum!