Für jedermann vertraut mit lambdaj (nicht ich) Sie dieses Stacktrace gesehen haben, oder eine Variante vor:Lambdaj Mit
ch.lambdaj.function.argument.ArgumentConversionException: Kann nicht wandeln den Platzhalter org.dom4j.tree.AbstractAttribute in einem gültigen Argument bei ch.lambdaj.function.argument.ArgumentsFactory.actualArgument (ArgumentsFactory.java:92) bei ch.lambdaj.function.matcher.HasArgumentWithValue.havingValue (HasArgumentWithValue.java:70) bei ch.lambdaj.Lambda.having (Lambda.java:1204)
Mein Verständnis ist, dass dies durch eine Begrenzung von Lambdaj mit letzten Klassen geschieht.
erhalte ich die oben, wenn Sie den folgenden Code zu testen:
import static ch.lambdaj.Lambda.having;
import static ch.lambdaj.Lambda.selectFirst;
import static org.hamcrest.CoreMatchers.equalTo;
import java.util.List;
import org.dom4j.tree.AbstractAttribute;
public class DocumentUtils {
public static String getAttributeValueFromListByName(
List<AbstractAttribute> list, String name) {
AbstractAttribute requiredAttribute = selectFirst(list,
having((AbstractAttribute.class).getName(), equalTo(name)));
String value = requiredAttribute.getValue();
return value;
}
}
I dom4j der Attribut-Schnittstelle hatte, das gleiche Problem bekommen, dann dachte, vielleicht .. lambdaj nicht Schnittstellen wie so wechselte ich zu den AbstrakteAttribute-abstrakte Klasse.
Gibt es ein Problem mit Lambdaj und abstrakten Klassen? Oder ist meine Methode nur Hosen? Irgendwelche Ideen, wie man das löst?
FYI: Ich verwende lambdaj 2.4 und 1.6 dom4j
Vielen Dank im Voraus.
Nur klar zu sein; Ich bin nur daran interessiert, ob dies in Lambdaj implementiert werden kann oder nicht. Wenn ich sage "Irgendwelche Ideen, wie man das löst?", Meine ich "löse" mit lambdaj. Vielen Dank! (Ich frage mich auch, ob Kommentar gwill meinen Beitrag stoßen werde, habe ich diese Frage erstellt letzte Nacht * Schlagzeug Finger *) – HellishHeat