Ich speichere Daten in einem Array des generischen Typs <E>
und muss einige Zellen in diesem Array als leer markieren. Ich kann null
nicht verwenden, da null ein gültiger Eintrag ist, der von einer leeren Zelle unterscheidbar sein muss.
Was ist der beste Weg, um diese Unterscheidung zu machen? Ich möchte vermeiden, andere Datenstrukturen wie eine Liste zu verwenden, die die Indizes von "empty"
Zellen enthält.Java generischer Typ EMPTY vs null
Im Falle eines Object
Array ich einfach eine Dummy-Instanz erstellen würde:
Object EMPTY = new Object();
und dann markieren leere Zellen mit: I eine Instanz nicht erstellen
array[emptyIndex] = EMPTY;
Soweit ich weiß, von generischen Typ E als ein "EMPTY"
Marker verwendet werden, obwohl. Gibt es eine andere Möglichkeit, einen leeren Marker zu erstellen, oder gibt es alternative Lösungen?
Die Verwendung von 'Null' als tatsächliche Werte ist äußerst gefährlich, und es wird empfohlen, dies zu überdenken. Unabhängig davon, schauen Sie sich 'Optional' an. –
@ E_net4 'Optional' kann nicht' null' enthalten. –
Verwenden Sie nicht den Typ'E, sondern etwas, das tatsächlich für Ihre Bedürfnisse geeignet ist. Vielleicht möchten Sie eine Wrapper-Klasse schreiben, die 'E' einkapselt. –