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

    [JAVA]Metodo statico generico

    salve a tutti!
    Vorrei gentilmente chiedervi se sapete dirmi cosa c'è di sbagliato nel metodo che ho allegato sotto.
    il metodo children restituisce una collezione iterabile dei figli del nodo passato cm argomento.
    Il metodo depth restituisce la profondità di un nodo.
    il metodo positions() restituisce un iteratore delle posizioni ossia Iterable<Position<E>>.
    Il compilatore mi dice che il metodo dovrebbe restituire un Iterable<Position<E>> ma è proprio cio' che restituisco..
    Rigrazio tutti anticipatamente!
    : /*Prende in input un albero T e un intero i e restituisce una collezione iterabile di tutti i nodi a profondità i*/
    public static<E> Iterable<Position<E>> atDepth(BinaryTree<E> T, int k)
    {
    int depth=0;
    LinkedTree<E> t= (LinkedTree<E>) T;
    PositionList<E> children= new NodePositionList<E>();
    if (k==0)
    children.addLast(T.root().element());
    else
    {
    PositionList<Position<E>> parent= new NodePositionList<Position<E>>();
    for (Position<E> pos: T.children(T.root()))
    children.addLast(pos.element());
    while ( (depth=t.depth(children.first())) < k)
    {
    children=null;
    for (Position<E> pos: parent)
    children.addLast(pos.element());
    for (Position<E> p: parent)
    for (Position<E> child: T.children(p))
    children.addLast(child.element());
    }
    return children.positions();
    }
    }:

  2. #2
    Utilizza il tag CODE altrimenti non si capisce molto e ricordati che esiste il forum Java.

    Per quanto riguarda il tuo problema, per quello che vedo (un'occhiata veloce a dire il vero), pare che non tutti i flussi dell'algoritmo restituiscano un valore di ritorno. In pratica ti trovi in una situazione simile a questa:

    codice:
        public String f()
        {
            if(true)
            {
                return "";
            }
        }
    Questo codice non compila perchè non sempre viene ritornato qualcosa. Ad esempio, se la condiz dell'if non risulta vera (nota che vale anche se questa risulta sempre vera), allora la tua funzione non ritorna niente.

    Una curiosità (non sono un grosso esperto di Java): "public static<E>" è giusto? Non mi pare di aver mai visto qualcosa del genere nè riesco a capirne il senso.


  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da antotan
    Una curiosità (non sono un grosso esperto di Java): "public static<E>" è giusto?
    Sì.


    Originariamente inviato da antotan
    Non mi pare di aver mai visto qualcosa del genere nè riesco a capirne il senso.
    Mai sentito parlare di tipi generici?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Originariamente inviato da Alex'87
    Mai sentito parlare di tipi generici?
    Tu che dici?

    Non ho detto di non conoscere questa sintassi:

    codice:
    Iterable<Position<E>>
    o questa

    codice:
    BinaryTree<E>
    ma di non capire "static<E>", cioè speficiare una wildcard dopo la parola chiave "static"

    edit: mea culpa

    http://java.sun.com/docs/books/tutor...s/methods.html

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.