Hallo,
ich möchte gerne eine Methode von einer extendeten Klasse deaktivieren d.h. nicht aufrufbar machen
ich möchte gerne eine Methode von einer extendeten Klasse deaktivieren d.h. nicht aufrufbar machen
Schadeentweder ist diese in der super Klasse private oder du verstößt gegen das Livkoschke Grundprinzip was im Prinzip sagt bei der Vererbung darfst du nur Klassen Erweitern und NIEMALS deren FUnktionalität einshcränken
Die Frau heißt Liskov: https://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzipdu verstößt gegen das Livkoschke Grundprinzip
Aber sinnvollSchade
Arrays.asList()
rauskommen.Das Ergebnis von Arrays.asList ist übrigens nicht read only. Collections.sort(Arrays.asList(array)) funktioniert tadellos. Man kann allerdings nichts hinzufügen oder löschen, das ist richtig.Zur Laufzeit kannst du die Methode natuerlich jeder Zeit "deaktivieren", in dem du diese ueberschreibst und dann entweder nichts tust oder eine Ausnahme wirfst. Das kann sogar gewuenscht sein, zum Beispiel die readonly-Lists welche beiArrays.asList()
rauskommen.
Oh, ja, ist schon veraenderbar, ist einfach nur eine neueDas Ergebnis von Arrays.asList ist übrigens nicht read only. Collections.sort(Arrays.asList(array)) funktioniert tadellos. Man kann allerdings nichts hinzufügen oder löschen, das ist richtig.
ArrayList
stelle ich gerade fest...keine Ahnung an welche andere Methode ich da gerade gedacht habe...na auf jeden Fall mal Collections.unmodifiableList
und Collections.emptyList
.Das ist sehr wahrscheinlich. Arrays.asList ist eben genau dafür extrem praktisch, diverse Collections-Methoden auf ein Array anzuwenden.Oh, ja, ist schon veraenderbar, ist einfach nur eine neueArrayList
stelle ich gerade fest...keine Ahnung an welche andere Methode ich da gerade gedacht habe...na auf jeden Fall malCollections.unmodifiableList
undCollections.emptyList
.
Ah, Danke, habe ich nicht aufmerksam genug gelesen...dann war das schon fast richtig von mir. So genau habe ich mir das noch nie angesehen (noch nie gebraucht).Es wird hier allerdings nicht java.util.ArrayList geliefert, sondern java.util.Arrays.ArrayList.
Letztere ist eine Liste, die nicht in der Größe verändert werden kann.
Wahrscheinlich List.offest...keine Ahnung an welche andere Methode ich da gerade gedacht habe...