Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – final static在编译时未评估的接口中定义的字符串 – Android大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个类和一个接口(例如 @L_513_2@model,LocalStore和InternalmodelInterfacE).它们的定义如下;
public class DatabaseModel {
  // ...
  public static final String KEY_PARAM1 = "param1";
}

public class LocalStore implements InternalmodelInterface {
  // ...
  public void function () {
    String temp = InternalmodelInterface.columN_PARAM1;
  }
}

public interfacE internalmodelInterface {
  public static final String columN_PARAM1 = DatabaseModel.KEY_PARAM1;
  // ...
}

我遇到的问题是,在运行时,当我调用localStore.function()时,temp被赋值为null,因为InternalmodelInterface.columN_PARAM1为null.这有意义吗?是不是应该在编译时评估InternalmodelInterface.columN_PARAM1并内联?

这适用于Android应用程序.提前致谢.

我将进一步解释澄清任何混淆.

DatabaseModel类的对象在解析JSON响应时被实例化. DatabaseModel类中定义的常量表示在JSON响应中查找的键.

InternalmodelInterface定义设备上本地(缓存)数据库中使用的列名称.由于多种原因(包括它们的键是sqlite中的非法列名),我不会将键重用为列名.

我使用接口而不仅仅是普通类的原因是接口还指定了需要由第三类LocalStore实现的必需方法.

解决方法

JLS3§8.3.2.1,§9.3.1 http://java.sun.com/docs/books/jls/third_edition/html/classes.html#38010

因此,在您的示例中永远不应该观察到null.那是一个Android bug.

大佬总结

以上是大佬教程为你收集整理的java – final static在编译时未评估的接口中定义的字符串 – Android全部内容,希望文章能够帮你解决java – final static在编译时未评估的接口中定义的字符串 – Android所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。