Visualizzazione dei risultati da 1 a 5 su 5

Discussione: AIUTO primitivi java

  1. #1

    AIUTO primitivi java

    Ciao a tuttio iniziato a studiare java da poco sono arrivato ai tipi primitivi e le classi invoulcro...
    cmq il io problema e che non riesco a capirle bene.
    Acrei da fare un esercizio che deve leggere un valore long e ne stampa la conversione in short e in int.
    qualcuno puo spiegarmi o farmi qualche esempio?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: AIUTO primitivi java

    Originariamente inviato da m1ster_b1t
    e le classi invoulcro...
    Che vengono comunemente chiamate "wrapper" dei tipi primitivi.

    Originariamente inviato da m1ster_b1t
    cmq il io problema e che non riesco a capirle bene.
    Acrei da fare un esercizio che deve leggere un valore long e ne stampa la conversione in short e in int.
    qualcuno puo spiegarmi o farmi qualche esempio?
    Se stai parlando della conversione tra tipi primitivi è semplice .... bastano dei cast (ovviamente devi sapere cosa può succedere al valore quando fai un cast ad un tipo primitivo più "ristretto").

    codice:
    long a = 12345678L;
    int b = (int) a;       // b vale 12345678, perché ci "sta" in un int
    short c = (short) a;   // c vale 24910 perché il long è troncato
    Se invece parli di conversioni tra le classi "wrapper", le cose non sono così immediate. Un Long (java.lang.Long) non può essere convertito direttamente ad un altro wrapper!! Valgono in generale le regole della ereditarietà.

    codice:
    Long a = new Long(12345678L);
    Integer b = (Integer) a;      // ERRORE di compilazione!
    Un Long è-un Number che è-un Object.

    Per fare la conversione da Long a Integer si dovrebbe fare:

    codice:
    Long a = new Long(12345678L);
    Integer b = new Integer(a.intValue());
    O da Java 5 si può sfruttare l'auto-boxing/unboxing e fare una catena di 2 cast (che sembrerebbe un po' buffa/strana):

    codice:
    Long a = new Long(12345678L);
    Integer b = (int)(long) a;
    Un Long può essere auto-unboxato a long, un long può essere convertito a int, un int può essere auto-boxato a Integer.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie mille per le risposte sei stato grandioso. grazie

  4. #4
    Scusa ma se io al posto di assegnare un numero long , lo vorrei acquisire da righa di comando:

    long a = 12345678L;
    int b = (int) a; // b vale 12345678, perché ci "sta" in un int
    short c = (short) a; // c vale 24910 perché il long è troncato

    se volessi aggiungergli che il valore long lo digito da righa di comando?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da m1ster_b1t
    lo vorrei acquisire da righa di comando:
    Se intendi passarlo come "argomento" all'avvio della applicazione, beh, il main(String[] args) riceve gli argomenti! Ovviamente sono String e se vuoi ottenere un valore numerico devi usare i parseXXX() delle classi wrapper dei primitivi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.