Hallo,
ich habe ein problem mit einer meiner klassen.
und zwar folgendes:
die klasse tut eigentlich nichts besonderes.
nun habe ich allerdings noch eine weitere klasse, die folgendes tun soll:
eine map halten, für gewisse key-strings (zahl, text, string, double, boolean) und einer liste.
wenn ich zb eine liste an integer werten brauche, solll ich diese über map.get("integer") bekommen.
jetzt brauche ich noch uperationen auf diese liste: get, set, trim;
get: gib mir ein element aus der liste an position index.
set: schreibe ein element in die liste an position index (wenn die liste zu klein ist, hänge so lange null elemente an bis sie lange genug ist damit der gewünschte index verfügbar ist)
trim: alle null elemente am ENDE der liste löschen
nun habe ich generische funktionen, die mir, get, set und trim übernehmen, allerdings das problem, dass ich nicht weiss, wie ich diese verwenden kann/muss/soll, damit ich keinen error bekomme
kann man mein problem so nicht lösen oder hab ich einen denkfehler?
ich habe ein problem mit einer meiner klassen.
und zwar folgendes:
Java:
public class AdditionalEntry<T> {
private static final long serialVersionUID = 7817815482047475858L;
protected Integer index; // iff null then invalid
protected T value;
public AdditionalEntry(Integer anIndex, T aValue) {
super(true);
index = anIndex;
value = aValue;
}
public Class<?> getClazz() {
return value.getClass();
}
public T getValue() {
return value;
}
void setValue(T aValue) {
value = aValue;
}
public boolean validate() {
if (index == null || index < 0) {
return false;
}
return true;
}
}
nun habe ich allerdings noch eine weitere klasse, die folgendes tun soll:
eine map halten, für gewisse key-strings (zahl, text, string, double, boolean) und einer liste.
wenn ich zb eine liste an integer werten brauche, solll ich diese über map.get("integer") bekommen.
jetzt brauche ich noch uperationen auf diese liste: get, set, trim;
get: gib mir ein element aus der liste an position index.
set: schreibe ein element in die liste an position index (wenn die liste zu klein ist, hänge so lange null elemente an bis sie lange genug ist damit der gewünschte index verfügbar ist)
trim: alle null elemente am ENDE der liste löschen
nun habe ich generische funktionen, die mir, get, set und trim übernehmen, allerdings das problem, dass ich nicht weiss, wie ich diese verwenden kann/muss/soll, damit ich keinen error bekomme
Java:
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AdditionalList {
private Map<String, List<AdditionalEntry<?>>> map = new HashMap<String, List<AdditionalEntry<?>>>();
private <T> AdditionalEntry<T> get(int index, List<AdditionalEntry<T>> list) {
if (index < list.size()) {
return list.get(index);
}
return null;
}
private <T> List<AdditionalEntry<T>> trim(List<AdditionalEntry<T>> toTrim) {
while (toTrim.get(toTrim.size()) == null) {
toTrim.remove(toTrim.size());
}
return toTrim;
}
private <T> void set(List<AdditionalEntry<T>> toCheck, int index, T value) {
while (index > toCheck.size() + 1) {
toCheck.add(null);
}
toCheck.add(new AdditionalEntry<T>(index, value));
}
///////// TODO IMPLEMENT THIS FOR ALL OTHER CLASSES TOO!!!
@Override
public Integer getInteger(int index) {
List<AdditionalEntry<Integer>> list = map.get(Integer.class.getSimpleName());
return (Integer) get(index, list).getValue();
}
@Override
public void setInteger(int index, Integer value) {
set(map.get(Integer.class), index, value);
}
}