我正在尝试为序列化组件中的泛型类型定义处理程序。
在普通的java中,我写了
public class MyClass {
public List<String> myField;
}
Type type = MyClass.class.getDeclaredField("myField").getGenericType();
Type typeAgain = MyClass.class.getDeclaredField("myField").getGenericType();
我可以断言
type.equals(typeAgain) == true
type.hashCode() == typeAgain.hashCode()
含义我可以在HashMap<Type, TypeHandler>
中使用它。
然而,在android上,具有相同类的相同操作会使两个断言都为假。
在同一个字段上连续两次拨打getGenericType()
(我已经确认该字段本身是相同的)不会给出相同的结果。
这是预期的行为吗?