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

    casting Object a char

    ragazzi ho un problema. praticamente devo controllare se il contenuto di un nodo di una lista(che è un char), sia maiuscolo.il nodo è aux ma quando vado a fare


    codice:
    if(isUpperCase((char)aux.getInfo()))
    mi dà un errore di casting:

    compitoB.java:69: inconvertible types
    found : java.lang.Object
    required: char
    if(isUpperCase((char)aux.getInfo()))
    ^
    1 error

    il costruttore del nodo prende come parametro un Object, quindi devo fare necessariamente un casting.

    grazie!!

  2. #2

    Re: casting Object a char

    Originariamente inviato da Pierissimo
    ragazzi ho un problema. praticamente devo controllare se il contenuto di un nodo di una lista(che è un char), sia maiuscolo.il nodo è aux ma quando vado a fare
    codice:
    if(isUpperCase((char)aux.getInfo()))
    mi dà un errore di casting:
    ...
    provo ad aiutarti ma devo capire meglio..
    che tipo ti ritorna il metodo getInfo()?
    com'e' fatta la classe aux?

  3. #3
    getInfo() torna un Object....

    aux è un istanza di un oggetto nodo che è così composto:

    codice:
    class nodo
    {
    	protected Object info;
    	protected nodo next;
    
    	public nodo(Object _info, nodo _next)
    	{
    		info=_info;
    		next=_next;
    	}
    
    	public nodo(Object _info)
    	{
    		this(_info,null);
    	}
    
             public void setNext(nodo _next)
    	{next=_next;}
    
    	public nodo getNext()
    	{return next;}
    
    	public void setInfo(Object _info)
    	{info=_info;}
    
    	public Object getInfo()
    	{return info;}
    }

    grazie per l aiuto!

  4. #4
    E' comprensibile che ti dia errore con questo tipo di cast.

    L'oggetto info che cosa dovrebbe contenere?
    Informazioni sul nodo della lista, tipo predecessore, etc?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    char è un tipo di dato primitivo, non puoi castare un oggetto a char come non lo puoi fare ad int.
    Dentro il nodo salvaci una classe wrapper per char: Character.
    Poi, quando usi nodes.getInfo(), casti il risultato a Character e per ottenere il char usi il metodo charValue().

    codice:
    char carattere = 'a';
    Nodo n = new Nodo(new Character(carattere), prossimoNodo);
    codice:
    if(Character.isUpperCase(((Character)aux.getInfo()).charValue())

  6. #6
    grazie mille!!!

    ora funziona!!!

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.