写DB框架的时候,使用反射获取属性的时候,多了一个$change属性,当场一脸懵比。 
 
 stackoverflow 发现是Android Studio2.0的.Instant Run 的问题. 
 解决办法

[转载请注明:Canney 原创:http://blog.csdn.net/canney_chen/article/details/51323663 ]

解决方法 方法1 
既然是增加了Instant Run特性导致的,那就把此特性关闭就可以了(默认是开启的) 
关闭方法:Settings> Build, Execution, Deployment> Instant Run> Enable Instant Run to hot swap code/resource changes on deploy(default enabled)(取消此选项)

方法2

Field[] fields = objClass.getFields();
for (Field field : fields) {         
      if(field.isSynthetic()){
            continue;
      }
      //add your code here
}  

此方法增加了for 及一个判断,Field.isSynthetic()方法是判断当前属性是编译插入时返回true。

总结 方法1 的解决不会改变现有的代码,风险较小,但是不能使用Studio的即时编译特性 方法2 我觉得是比较好的方案,可以彻底的解决问题而且还能使用新的特性

 

 
 

相关文章:

  • 2021-05-28
  • 2022-12-23
  • 2022-01-09
  • 2022-12-23
  • 2022-02-27
  • 2022-12-23
  • 2022-01-29
猜你喜欢
  • 2021-09-09
  • 2021-11-23
  • 2021-07-08
  • 2021-12-08
  • 2021-05-21
  • 2021-12-28
相关资源
相似解决方案