Ich versuche, eine externe Bibliothek in idiomatische Clojure zu wickeln. Dies beinhaltet, dass seine Datenstrukturen faul werden. Ich möchte in die statische Methode read
unten kommen und FooList
faul machen.Wie kann ich eine Datenstruktur innerhalb einer statischen Java-Methode erweitern, um faul zu sein?
ich in viele Probleme leite:
- Java statische Methoden können nicht außer Kraft gesetzt werden
proxy
scheint nur Instanz zu erzeugen Objektegen-class
scheint sorta Arbeit ein bisschen, aber ich bekomme in Meer verloren von Namespaces, Aliasen usw.- Die fragliche Methode ruft eine andere statische und private Methode auf (die ich gerne wiederverwenden würde), wodurch das Überschreiben der öffentlichen Methode erschwert wird.
Was ist die beste Strategie, dies zu tun? Ist es möglich, FooList
zu öffnen und es als faul umzusetzen, wobei die resultierende Klasse für den Rest meines Codes verfügbar ist?
org.apache.commons.collections.list.LazyList scheint für die Aufgabe geeignet, aber ich bin mir nicht sicher, wie es geht, um es tatsächlich verwenden zu können.
Hilfe?
public class Foo {
public static FooList read(String filename) {
FooList foos = new FooList(); //FooList extends ArrayList
BufferedReader br = new BufferedReader(new FileReader(filename));
for (String s = br.readLine(); null != s; s = br.readLine()) {
Foo f = parseLine(s);
foos.add(f);
}
br.close();
return foos;
}
private static Foo parseLine(String s) {
//return s as Foo
}
}
Danke, genau wonach ich gesucht habe. –