Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [java] instanceof

  1. #1

    [java] instanceof

    ciao a tutti, il mio problema è il seguente:
    vorrei sapere come fare a capire se un oggetto è un intero o una stringa
    io faccio un test di questo tipo
    if(oggetto instanceof Integer)
    purtroppo non funziona, come devo fare???
    grazie
    ------
    Quando un uomo siede un'ora in compagnia di una bella ragazza, sembra sia passato un minuto. Ma fatelo sedere su una stufa per un minuto e gli sembrerà più lungo di qualsiasi ora. Questa è la relatività.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Non capisco... un int non è un oggetto, quindi la funzione instanceof non ha senso... String è un oggetto, quindi puoi usare la funzione instanceof per differenziare due variabili di due oggetti diversi.

    Se il tuo problema è sapere se una stringa contiene un numero oppure no, puoi usare il metodo parseInt() statico per Integer: se il metodo ti ritorna un'eccezione di tipo NumberFormatException allora l'oggetto non rappresenta un intero.

    Se il problema non è questo, posta un po' di codice...

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Originariamente inviato da LeleFT
    Non capisco... un int non è un oggetto, quindi la funzione instanceof non ha senso... String è un oggetto, quindi puoi usare la funzione instanceof per differenziare due variabili di due oggetti diversi.
    Veramente ha scritto

    codice:
    instanceof Integer
    che sintatticamente e' corretto. :tongue:

    Se pero' si ha una variabile di tipo int, il compilatore non dovrebbe vederla come istanza di Integer e quindi il codice non funzionera' mai.
    Secondo me c'e' un'altra soluzione per scrivere quel programma, mi pare strano che una variabile venga utilizzata indipendentemente per int e String... Ma sono solo supposizioni.
    ChReAn
    -------------------

    Slackware 9.1 powered

  4. #4
    Ho capito, ma quindi come posso fare per eseguire queste istruzioni:

    oggetto = Console.readLine("Inserisci l'oggetto");
    if(oggetto instanceof Integer)
    {
    a = (Integer)oggetto;
    misura = misura + a.intValue();
    }
    else
    {
    b = (String)oggetto;
    misura = misura + b.length();
    }

    grazie
    ------
    Quando un uomo siede un'ora in compagnia di una bella ragazza, sembra sia passato un minuto. Ma fatelo sedere su una stufa per un minuto e gli sembrerà più lungo di qualsiasi ora. Questa è la relatività.

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Per risponderti bisogna sapere cosa restituisce il metodo readLine() della classe Console. Se readLine() restituisce un Object, che di volta in volta può essere un Integer o una String il codice è corretto. Se readLine() restituisce una String, però vuoi distinguere il caso in cui la stringa restituita rappresenta un intero, puoi usare il medodo suggerito da LeLeFT:

    String oggetto = Console.readLine("Inserisci l'oggetto");
    try{
    misura = misura + Integer.parseInt(oggetto);
    catch(NumberFormatException e){
    misura = misura + oggetto.length();
    }

    Ciao.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.