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

    Problema con metodo tra classi diverse

    Ciao a tutti, vi disturbo per una virgola.
    Mi chiedevo se qualcuno può aiutarmi a capire questo codice:

    codice:
    List<Agenda> lista = query<Agenda>(agende).esegui();
    Il dubbio risiede sulla sintassi: query<Agenda>(agende)
    Suppongo che questa voglia indicare un metodo che restituisca un oggetto, sul quale poter chiamare esegui().
    Domanda 1: come è possibile definire un tal metodo in modo che sia richiamabile da qualsiasi classe?

    Domanda 2: esistono soluzioni alternative secondo cui quella sintassi non sia un metodo ma qualcos'altro?

    Grazie a tutti in anticipo.

  2. #2
    Utente di HTML.it L'avatar di progAnd
    Registrato dal
    Jan 2012
    Messaggi
    119
    Devi usare i generici: una delle cose più complesse e potenti di Java (io li ho capiti solo dopo aver letto Thinking in Java ed a tutt'oggi preferisco evitarle ed usare quelle messe a disposizione da Java (i vari List, Collection, Map, eccetera)).

    Per la 2) No.

    Ciao

  3. #3
    No, non è questo il problema.
    Io ho un metodo che può essere richiamato così: query<Agenda>(agende)
    e questo metodo restituisce un oggetto.

    Ad esempio:
    classe1.java è un file che contiene:

    codice:
    public class classe1{
       metodo 1...
       metodo 2...
       public query<T>(param){}   <- posso usarlo ovunque dentro classe1.java
    }

    classe2.java è un file che contiene:

    codice:
    classe1 oggetto = new classe1();
    oggetto.query<Agenda>(agende);
    
    oppure se quel metodo è static posso usare
    classe1.query<Agenda>(agende);
    il mio problema è che non devo utilizzare la sintassi oggetto.metodo() oppure classe.metodo(), quindi esiste qualche soluzione per chiamare direttamente il metodo: query<Agenda>(agende)?

  4. #4
    Utente di HTML.it L'avatar di progAnd
    Registrato dal
    Jan 2012
    Messaggi
    119
    Se il metodo è statico:
    codice:
    import static classe1;
    Ora puoi usare query<Agenda>(agende)

    In caso contrario puoi usarlo solo all'interno della classe1.

    Ciao
    PS: poi non ho capito perché non puoi usare la sintassi oggetto.metodo o classe.metodo...

  5. #5
    No, purtroppo anche in questo caso non va bene, perché dovrei comunque utilizzare le sintassi:

    oggetto.metodo();
    oppure
    classe.metodo();

    Le specifiche del problema non mi consentono di utilizzarli e posso scrivere solamente:

    metodo<T>(param)

  6. #6
    Utente di HTML.it L'avatar di progAnd
    Registrato dal
    Jan 2012
    Messaggi
    119

    Se il metodo è statico puoi usare l'import descritto nel post precedente e quindi usare all'interno della classe la chiamata al metodo senza la sintassi classe.metodo(), ma solo la sintassi metodo().

    In caso contrario, cioè se è un metodo d'istanza, puoi usare quella sintassi solo all'interno di un metodo della stessa classe (o di una sua derivata, se non è privato; oppure dall'interno di una classe interna).

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