Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457

    Metodo dichiarato all'interno di un altro metodo

    Salve a tutti,
    mi trovo alle prese con la validazione dei campi di una form. E fin qui tutto ok. Guardando pi� da vicino il codice ho notato che ci sono dei metodo dichiarati all'interno di un altro codice. E' la prima volta che vedo una sintassi nuova. Sono esterrefatto. Qualcuno, con un po' di pazienza potrebbe spiegarmi come funziona? Vi allego il codice


    codice:
    @Override
    public void validate(final ApriWidgetValidationCallback validationCallback) {
    if ((widget_ instanceof ApriDefaultInputWidget) && !((ApriDefaultInputWidget)widget_).isVisible()) {
    validationCallback.onValidationSuccess();
    return;
    }
    
    lengthValidation_.validate(widget_.getUserInput(), new ApriWidgetValidationCallback() {
     
    @Override
    public void onValidationSuccess() {
    requiredValidation_.validate(widget_.getUserInput(), validationCallback);
    }
    
    @Override
    public void onValidationOutcome(List<ApriWidgetValidationOutcome> outcomes) {
    validationCallback.onValidationOutcome(outcomes);
    }
    
    @Override
    public void onValidationError(List<ApriWidgetValidationError> errors) {
    validationCallback.onValidationError(errors);
    }
    });
    }
    Ultima modifica di LeleFT; 25-01-2017 a 14:50 Motivo: Aggiustati i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Mitele Visualizza il messaggio
    Guardando pi� da vicino il codice ho notato che ci sono dei metodo dichiarati all'interno di un altro codice. E' la prima volta che vedo una sintassi nuova. Sono esterrefatto. Qualcuno, con un po' di pazienza potrebbe spiegarmi come funziona?
    Innanzitutto dovresti postare meglio il codice, perché così come è scritto è molto poco leggibile.

    Poi comunque il punto della tua questione è che quei metodi (es. public void onValidationSuccess() ecc..) NON sono direttamente dentro il validate. Sono metodi definiti (e in "override") in una "anonymous inner class".

    Quando vedi un new Qualcosa( ...eventuali args... ) seguito da parentesi graffe { } con metodi e altro dentro, quella è appunto una anonymous inner class.

    Anonymous Classes
    Ultima modifica di andbin; 25-01-2017 a 12:58
    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.