Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema conversione da Short a Int

    Ciao a tutti,

    Sto studiando da poco il Java e ora mi trovo davanti a questo esercizio:

    Si scriva un programma che legga un valore short, lo converta in oggetto di tipo short e converta quest'ultimo in un oggetto di tipo Integer. Quali meccanismi di conversione sono necessari?

    Ecco il codice scritto da me:

    public class ConvShort{
    public static void main(String []args){
    short valore;
    valore= Input.readShort("Inserisci un numero"); //uso una classe fornita dal libro
    short oggShort = new Short(valore);
    int intero=oggShort.intValue();
    integer oggInt=new Integer(intero);

    System.out.println("Il valore short "+valore+" convertito in un Int:"+oggInt.value);
    }
    Purtroppo al momento della compilazione mi da il seguente errore:
    Short cannot be derefenced nella riga dove converto l'oggetto short in un int.

    Potete darmi una mano? Credo di fare qualche errore stupidissimo, ma da solo non ne esco.

    Mi servirebbe una bella diagnosi differenziale ragazzi :-)

    Grazie mille

    Ciao

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

    Re: Problema conversione da Short a Int

    Originariamente inviato da roby492
    short oggShort = new Short(valore);
    Questa riga è tecnicamente corretta ma la variabile è il primitivo short, non java.lang.Short.
    Hai istanziato il Short (oggetto) ma viene subito unboxato di nuovo a short. Non è questo che chiedeva l'esercizio.

    Originariamente inviato da roby492
    int intero=oggShort.intValue();
    Cambia la variabile oggShort a Short e andrà a posto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie.

    Così dovrebbe essere corretto, seguendo le linee dell'esercizio:

    public class ConvShort{
    public static void main(String []args){
    short valore;
    valore= Input.readShort("Inserisci un numero"); //uso una classe fornita dal libro
    Short oggShort = new Short(valore);
    int intero=oggShort.intValue();
    Integer oggInt=new Integer(intero);

    System.out.println("Il valore short "+valore+" convertito in un Int: "+oggInt);
    }
    Il passaggio da oggetto Short a oggetto Integer si può fare in altri modi o bisogna necessariamente passare da una variabile int?

    Grazie mille:-)

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da roby492
    bisogna necessariamente passare da una variabile int?
    Sì (comunque da un primitivo, short o int che sia), non puoi fare in altro modo.
    Un oggetto non può "trasformarsi" in un altro tipo (se si istanzia uno Short, quello è e resta) .... al massimo si può "vederlo" come uno dei super-tipi o interfacce che implementa.
    Uno Short è-un Number che è-un Object.
    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.