Ich arbeite an einem bereits vorhandenen Java-Programm, eine seiner Klassen berechnet einige boolesche Funktionen. Es verwendet HashMap
dies für die Umsetzung, so dass das erste Argument ein String
Typ ist und der zweite ist ein Predicate
Typ:HashMap mit Eingabe von Prädikat-Typ in Java
featureMap = new HashMap<String, Predicate<ChunkedBinaryExtraction>>
Die featureMap von einigen Strings und Predicate Werte manuell eingestellt wird, die definiert und zurückgeführt, indem einige private Methoden (zum Beispiel: featureMap.put("extr phrase", extrCoversPhrase());
).
Ich brauche die Funktionen zuzugreifen Werte (zweites Argument), so habe ich diesen Code:
Set set = featureMap.entrySet();
Iterator i = set.iterator();
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
Es richtig erstes Argument extrahieren konnte aber nicht die zweiten (Funktionen Werte)! Es gibt so etwas wie diese:
extr phrase: [email protected]a7bc2
Es scheint, dass me.getValue()
zum Abrufen von Eigenschaften Werte eine richtige Aussage isnot?
Parametrieren Sie Ihre 'Set' und' Map.entry' entsprechend, anstatt rohe Typen zu verwenden. – Mena
@Mena hat Recht! Verwenden Sie keine rohen Typen! Check Effective Java 2nd Edition, Kapitel 5, Punkt 23: Verwenden Sie keine rohen Typen! –