Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

 

Code Block
languagejava
titleCorrect casting
int i = 99;
byte b = (byte) i;
 
System.out.println(b);
 
// 99

i er innenfor verdiområdet til byte

 

Code Block
languagejava
titleIncorrect casting
int i = 500;
byte b = (byte) i;
 
System.out.println(b);

// -12  

i er utenfor verdiområdet tilbyte

 

 

Code Block
languagejava
titleHigher #bits
int i = Integer.MAX_VALUE;
long l = i;	

System.out.println(l);
 
// 2147483647

Trenger ikke caste "oppover"

Merk at Wrapperklassene (se lenger ned) gir støtte for konvertering mellom talltypene uten casting

Flyttall

Hva flyttall angår vil det vil sjeldent være grunn til å bruke noe annet enn double. Det som er viktig å bemerke seg er at et flyttall blir mindre og mindre nøyaktig desto større det blir og at man kan oppleve upresise beregninger selv med små verdier. 

...

 

Code Block
languagejava
titleAdding objekt
List<Integer> list = ArrayList<Integer>();


list.add(Integer.valueOf(13)); // valueOf() refererer til et objekt


list.get(0) // En Integer

 

Som nevnt over har java mekanismer som konverterer for oss
dersom det er helt tydelig hvilke verdier og typer som forventes

Code Block
languagejava
titleAuto-converting
list.add(n) // oversettes til
list.add(Integer.valueOf(n)) // og

list.get(i) // oversettes til 
list.get(i).intValue() 

 

...