2010-10-29 17 views
6

Niçin Integer parametresini int türünde argüman olarak kullanmak mümkün ve neden tersi mümkün mü diye merak ettiniz mi?Tamsayıya int ve tam tersi

public class Salmon { 

public static Integer foo(Integer a, int b){ 
    return a - b; 
} 
public static void main(String[] args) { 
    Integer a = 10; 
    int b = 1; 
    foo(b, a); 
} 
} 

cevap

7

Bu otomatik boks ve otomatik kutudan çıkarma. Temel olarak derleyici, Integer.valueOf() veya x.intValue() numaralarına uygun şekilde çağrı yapar.

Kesin mekanizma aslında belirtilmemiş, ancak belirtimin ilgili bölümleri 5.1.7 and 5.1.8'dir.

+3

Bu özelliğin, gizemli NullPointerException sorunlarının bir sınıfını getirdiği unutulmamalıdır. – Pointy

+0

Geliştirebilir misiniz? Bu durumda bir NullPointerException? – mxdsp

+0

@mxdsp: Bu sorunun hiç bir parçası değil. Bir NPE'ye giriyorsanız, açıklayamazsınız, lütfen * ayrıntılı * araştırma yaptıktan sonra yeni bir soru sorun. (NPE'lerde * çok fazla soru vardır.) –

İlgili konular