Desidero creare una classe quasi identica all'oggetto restituito da FXCollections.observableArrayList()
ma con alcune funzionalità aggiuntive. Il mio primo pensiero è stato qualcosa di simileimplementare ObservableList, estendere ObservableListWrapper
public class MyObservableList implements ObservableList
{
private ObservableList list = FXCollections.observableArrayList();
public functionWhatever()
{
// whatever
}
}
ma che significa sovrascrivendo i ~ 30 funzioni che vengono con ObservableList
(che sembra un suggerimento che sto facendo qualcosa di sbagliato).
FXCollections.observableArrayList()
restituisce un oggetto di tipo com.sun.javafx.collections.ObservableListWrapper
, ma quando estendo ObservableListWrapper
che sto necessarie per creare un costruttore come
MyObservableList(List arg0)
o
MyObservableList(List arg0, Callback arg1)
che mi preoccupa perché FXCollections.observableArrayList()
non accetta qualsiasi argomento.
Non so come FXCollections
crea l'oggetto ObservableListWrapper
che restituisce ma voglio MyObservableList
di essere identico a quello oggetto restituito da FXCollections
(più un paio funzioni extra).
Come posso fare?
'ObservableList' implementa' Elenco' e 'Osservabile'. Cosa succede se hai creato la tua lista, facendola ereditare da una classe di implementazione di 'List' e 'Observable' invece di' ObservableList', o hai bisogno di usarla per qualcosa che richiede 'ObservableList'? –
Il problema è che JavaFX utilizza ObservableList dappertutto. Il modo ufficiale per creare un oggetto ObservableList è tramite FXCollections.observableArrayList(). Voglio che gli oggetti creati dalla mia classe siano identici (perché chissà cosa cambierà in futuro) ma con funzioni aggiuntive. – beardedlinuxgeek
Potresti usare un delegato di wrap-up? – Rekin