2013-06-21 16 views
8

Netbeans IDE, size sorun yaratabilecek kodları tespit etmede iyidir. Neden bir uyarı ben çocuk yapıcısı temel sınıf işlevi foo() arıyorum göz önüne alındığındaNetbeans IDE, kurucularda çağrılan yöntemlerle ilgili uyarılar yayınlamıyor

public class Base 
{ 
    Base(...) 
    { 
     ...; 
    } 

    public void foo() 
    { 
     ...; 
    } 
} 

public class Child extends Base 
{ 
    Child(...) 
    { 
     super(...); 
     foo(); 
    } 
} 

için verilen değil? temel nesne noktası foo tarafından inşa edildiği gibi tamamen meşru olduğunu Tabii() olarak adlandırılan, ancak foo() yani gerçekten() son işaretlenmiş foo sürece bir uyarı beklenebilir örtülü sanal yöntemdir edilir.

Sana son olarak işaretlenmemiş bir çocuk sınıf yapıcısı herhangi taban sınıfı işlevi çağırmak durumunda IDE bir uyarı gerektiğini düşünüyorum.

+0

Yani 'foo() 'soyut nedir? soyut boşluklu foo(); '? – NINCOMPOOP

+0

Hayır hiç de değil. Uygulaması var. Netleştirmek için soruyu düzenleyeceğim. – Bathsheba

+0

Bir hata olduğunu düşünüyorsanız, bir hata olduğunu düşünüyorsanız: https://netbeans.org/community/issues.html – Puce

cevap

2

Yapıyor.
Dosyayı NetBeans uygulamasında açtığınızda, foo numaralı aramanın yanındaki sarı renkli bir ampul (ipucu göstergesi) görmelisiniz. Bu bir öneri olduğunu sen ya:

  • Yap Çocuk nihai
  • Yap foo, nihai özel veya statik

bunu, Tools > Options gidin ya Edit > Preferences, daha belirgin olmasını istiyorsanız veya Netbeans > Preferences (işletim sisteminize bağlıdır).
Editor
Hints
Seti Language için Java
Initialization
Seç Expand Seç Seç Problematic call in the constructor
Değişim Show as Şimdi tıklayın OK

çizgi yanı sıra dosya kırmızı bir hata rozeti alacak Error
için .

Not, bunların hiçbiri sen göstergesini görmezden gelen önleyecektir. Kod hala yasal Java, bu nedenle NB derlemenizi engellemez.