Articles of dell’interfaccia

Come implementare enum con i generici?

Ho un’interfaccia generica come questa: interface A { T getValue(); } Questa interfaccia ha istanze limitate, quindi sarebbe meglio implementarle come valori enum. Il problema è che queste istanze hanno diversi tipi di valori, quindi ho provato il seguente approccio ma non viene compilato: public enum B implements A { A1 { @Override public String […]

Denominazione dell’interfaccia in Java

La maggior parte delle lingue OO prefigura i loro nomi di interfaccia con una I maiuscola, perché Java non lo fa? Qual è stata la ragione per non seguire questa convenzione? Per dimostrare cosa intendo, se volessi avere un’interfaccia utente e un’implementazione utente avrei due possibilità in Java: Classe = Utente, Interfaccia = UserInterface Classe […]

Dovremmo @Override l’implementazione del metodo di un’interfaccia?

Un metodo che implementa un metodo di interfaccia dovrebbe essere annotato con @Override ? Javadoc dell’annotazione Override dice: Indica che una dichiarazione di metodo è destinata a sostituire una dichiarazione di metodo in una superclass. Se un metodo è annotato con questo tipo di annotazione ma non sovrascrive un metodo superclass, i compilatori sono obbligati […]

Elenco cast per elenco

public interface IDic { int Id { get; set; } string Name { get; set; } } public class Client : IDic { } Come posso eseguire il cast List su List ?

Polymorphism: Perché usare “List list = new ArrayList” invece di “ArrayList list = new ArrayList”?

Possibile duplicato: Perché dovrebbe essere preferibile l’interfaccia per una class Java? Quando dovrei usare List list = new ArrayList(); ArrayList eredita da List , quindi se alcune funzionalità di ArrayList non sono in List , allora avrò perso alcune delle funzionalità di ArrayList , giusto? E il compilatore noterà un errore nel tentativo di accedere […]

Comprensione delle interfacce covariant e controvarianti in C #

Ho trovato questi in un libro di testo che sto leggendo su C #, ma ho difficoltà a comprenderli, probabilmente a causa della mancanza di contesto. C’è una buona spiegazione concisa di cosa sono e di cosa sono utili là fuori? Modifica per chiarimenti: Interfaccia Covariant: interface IBibble . . Interfaccia controvariante: interface IBibble . […]

Java – Collisione del nome del metodo nell’implementazione dell’interfaccia

Se ho due interfacce, entrambe molto diverse nei loro scopi, ma con la stessa firma del metodo, come faccio a implementare una class entrambe senza essere costretti a scrivere un singolo metodo che serve per entrambe le interfacce e scrivendo qualche logica convoluta nel metodo implementazione che verifica per quale tipo di object viene effettuata […]

Implementazione di due interfacce in una class con lo stesso metodo. Quale metodo di interfaccia è sovrascritto?

Due interfacce con gli stessi nomi e firme dei metodi. Ma implementato da una singola class, quindi come il compilatore identificherà il metodo per quale interfaccia? Ex: interface A{ int f(); } interface B{ int f(); } class Test implements A, B{ public static void main(String… args) throws Exception{ } @Override public int f() { […]

Come trovi tutte le sottoclassi di una determinata class in Java?

Come si fa a cercare e trovare tutte le sottoclassi di una determinata class (o tutti gli implementatori di una determinata interfaccia) in Java? A partire da ora, ho un metodo per farlo, ma lo trovo abbastanza inefficiente (per non dire altro). Il metodo è: Ottieni un elenco di tutti i nomi di class esistenti […]

Digitare List vs type ArrayList in Java

(1) List myList = new ArrayList(); (2) ArrayList myList = new ArrayList(); Capisco che con (1), le implementazioni dell’interfaccia di List possono essere scambiate. Sembra che (1) sia tipicamente usato in un’applicazione indipendentemente dal bisogno (io stesso lo uso sempre). Mi chiedo se qualcuno usa (2)? Inoltre, con quale frequenza (e posso per favore avere […]