Articles of finale

Perché tutti i campi in un’interfaccia sono implicitamente statici e definitivi?

Sto solo cercando di capire perché tutti i campi definiti in un’interfaccia sono implicitamente static e final . L’idea di mantenere i campi static ha senso per me dato che non puoi avere oggetti di un’interfaccia, ma perché sono final (implicitamente)? Qualcuno sa perché i progettisti Java sono andati a rendere i campi in un’interfaccia […]

Perché `private val` e` private final val` differenti?

Ero solito pensare che private val e private val private final val sono uguali, fino a quando ho visto la sezione 4.1 in Scala Reference: Una definizione di valore costante è della forma final val x = e dove e è un’espressione costante (§6.24). Il modificatore finale deve essere presente e nessuna annotazione del tipo […]

in che ordine vengono eseguiti blocchi statici e variabili statiche in una class?

Possibile duplicato: Inizializzazione della class statica Java Perché la variabile di stringa viene aggiornata nel blocco di inizializzazione e non nel numero intero (anche se il blocco viene scritto per primo) class NewClass { static { System.out.println(NewClass.string+” “+NewClass.integer); } final static String string=”static”; final static Integer integer=1; public static void main(String [] args)//throws Exception { […]

Perché l’object finale può essere modificato?

Ho trovato il seguente codice in un codice base su cui sto lavorando: public final class ConfigurationService { private static final ConfigurationService INSTANCE = new ConfigurationService(); private List providers; private ConfigurationService() { providers = new ArrayList(); } public static void addProvider(ConfigurationProvider provider) { INSTANCE.providers.add(provider); } … INSTANCE è dichiarato come finale. Perché gli oggetti possono […]

Verifica dell’esistenza di un membro, possibilmente in una class base, versione C ++ 11

In https://stackoverflow.com/a/1967183/134841 , viene fornita una soluzione per controllare staticamente se esiste un membro, possibilmente in una sottoclass di un tipo: template class has_resize_method { class yes { char m;}; class no { yes m[2];}; struct BaseMixin { void resize(int){} }; struct Base : public Type, public BaseMixin {}; template class Helper{}; template static no […]

Perché la variabile finale statica qualificata non è ammessa in un blocco di inizializzazione statico?

Caso 1 class Program { static final int var; static { Program.var = 8; // Compilation error } public static void main(String[] args) { int i; i = Program.var; System.out.println(Program.var); } } Caso 2 class Program { static final int var; static { var = 8; //OK } public static void main(String[] args) { System.out.println(Program.var); […]

parola chiave finale nei parametri del metodo

Incontro spesso metodi che assomigliano al seguente: public void foo(final String a, final int[] b, final Object1 c){ } Cosa succede se questo metodo viene chiamato senza passare i parametri finali. cioè un object 1 che viene successivamente modificato (quindi non dichiarato come finale) può essere passato a questo metodo bene

Devono essere definitive tutte le proprietà di un object immutabile?

Gli oggetti immutabili devono avere tutte le proprietà final ? Secondo me no. Ma non lo so, se ho ragione.

Modificatore finale Java

Mi è stato detto che ho frainteso gli effetti del final . Quali sono gli effetti della parola chiave final ? Ecco una breve panoramica di ciò che penso, lo so: Modificatore finale Java (noto anche come relazione di aggregazione) variabili primitive : può essere impostato solo una volta. (guadagno di memoria e prestazioni) variabili […]

Buoni motivi per proibire l’ereditarietà in Java?

Quali sono i buoni motivi per proibire l’ereditarietà in Java, ad esempio utilizzando classi o classi finali utilizzando un singolo costruttore privato senza parametri? Quali sono le buone ragioni per rendere definitivo un metodo?