【发布时间】:2009-11-15 17:18:09
【问题描述】:
这就是我所在的地方:
public final Comparator<Object> ID_IGN_CASE_COMP = new Comparator<Object>() {
public int compare(Object o1, Object o2) {
String s1 = null;
String s2 = null;
try {
Class c = o1.getClass();
IO.println(c.getName()); //java.lang.string instead of Animal
Method method = c.getMethod("getId");
s1 = (String)method.invoke(o1);
s2 = (String)method.invoke(o2);
} catch (NoSuchMethodException e) {
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {}
return s1.compareToIgnoreCase(s2);
}
};
private Map< String, Animal> _animals = new TreeMap< String, Animal>(ID_IGN_CASE_COMP);
我得到的是 java.lang.string 而不是 Animal 类。关于如何解决此问题的任何想法?
【问题讨论】:
-
您的意思是您不了解 TreeMap 的用途是什么?
标签: java comparator treemap