2010-10-20 21 views
7

Boolean kaynağından boole a java

public class BooleanTest { 
    public BooleanTest() { 
     super(); 
    } 


    public static void main(String args[]){ 
     BooleanTest bt = new BooleanTest(); 
     bt.doProcess(); 

    } 

    private boolean method() { 
     return false; 
    } 

    private void doProcess() { 
     Boolean obj = (Boolean)method(); 
     System.out.println(obj.booleanValue()); 
    } 
} 

olarak bir kodum var.

+4

Her gördüğümde, insanların neden hata yapıcıları yazmadığını ve açık bir şekilde super() öğesini çağırdığını merak ediyorum. – Qwerky

+0

Birisi başka bir kurucu ekleyebilir ve noarags kurucusunun her zaman mevcut olduğundan emin olmak isteyebilirsiniz. Çünkü mantıksal olarak daha açık. Açıklayıcı kod snippet'inde itiraf etmeliyim, ancak çok kullanışlı değil. – DJClayworth

+0

Ayrıca süper() çağırma gereği yoktur. –

cevap

11

Hayır, bir ilkel değeri eşdeğer sarmalayıcı türüne eklediğinizde sonuç asla boş olmaz.

+2

Çünkü ilkel bir tür ** asla ** boş olamaz. –

+0

@The Elite Gentleman –

+0

@ org.life.java'dan bahsettiğim şey, üzgünüm, asla mesajınızı okumuyorsunuz .... –

7

Hayır,

Sebep: ilkel NPE için asla kurşun,

Ve ayrıca gerek o olacak autobox

kastedilmesi olacak Wrapper dönüştürerek bu kadar boş tutun asla
+2

Varsayılan değerler ile ilgili bir şey değil. İlkel türlerin değer türleri olduğu gerçeği ile ilgilidir - bir “int” değişkeninin değeri tamsayıdır, bir referans değildir ... o zaman nasıl “null” olabilir? –

+0

@Jon, OP'nin her durumda ilkel tutmayacağını NULL –

+2

life.java olarak anlamasını sağlamak için varsayılan değerden bahsetmiştim: Bana göre, bu, işleri daha net hale getirmekten çok daha fazla karıştırıyor. Değer tipleri ve referans türleri arasındaki farkın varsayılan değerler ile çok az ilgisi vardır. –

3

Hiçbir zaman bir NPE atar ve aynı zamanda java> = 1.5 kullanıyorsanız, yayınlamanıza gerek yoktur. JDK 1.5 den tanıtılan autoboxing denir.

2

Yalnızca akılda kalıcı olmak için, System.out öğesinin null olmasını ayarlamış olabilirsiniz, bu satır bir NPE oluşturacaktır.

Fakat bu garip olurdu.