Articles of dell’interfaccia

I metodi in un’interfaccia Java dovrebbero essere dichiarati con o senza un modificatore di accesso pubblico?

I metodi in un’interfaccia Java dovrebbero essere dichiarati con o senza il modificatore di accesso public ? Tecnicamente non importa, ovviamente. Un metodo di class che implementa interface è sempre public . Ma cos’è una convenzione migliore? Java in sé non è coerente in questo. Vedi ad esempio Collection vs. Comparable o Future vs. ScriptEngine […]

Perché le variabili dichiarate con il loro nome di interfaccia in Java?

Questa è una vera domanda per principianti (sto ancora imparando le basi Java). Posso (un po ‘) capire perché i metodi restituiscono un elenco piuttosto che un ArrayList o perché accettano un parametro List anziché un ArrayList. Se non fa alcuna differenza per il metodo (cioè, se non sono richiesti metodi speciali da ArrayList), ciò […]

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() { […]