【问题标题】:Can i use Dynamic variable(like time) to construct static final variable(constant)我可以使用动态变量(如时间)来构造静态最终变量(常量)吗
【发布时间】:2015-05-12 18:44:43
【问题描述】:

为了构建文件名,我正在构建名称,如下所述

public static final String JSON_LOG_FILE_NAME = "JSON"
  +getUserName() + System.currentTimeMillis()
  + ".txt";

这一直工作到昨天,现在它给出了异常初始化错误。 我的疑问是可以将动态值(如 android 设备时间和数据库值)用作静态最终变量的一部分。

【问题讨论】:

    标签: java android exception constants static-variables


    【解决方案1】:

    当您希望根据时间对其进行修改时,使用 final 没有任何意义。

    您可以创建像“JSON”这样的最终变量,并且可以使用连接来命名文件。

    对于您的情况:上述逻辑是有效的,即文件名仅在加载类时更改,而不是每次您使用变量时更改。该值是恒定的,当您使用它时,您不会发现时间值会动态变化。

    【讨论】:

    • 您的编辑被拒绝。如果您想更改答案中的代码,请检查用户的个人资料。如果他们目前在附近,请发表评论。如果他们很久没来了,请进行编辑,并在编辑评论中提及。如果它被拒绝,请对建议的答案发表评论。如果您的声望达到 2,000,则无需审核即可进行这些类型的编辑。
    【解决方案2】:

    我建议使用ch.qos.logback.classic.Logger 来生成基于时间的文件。

    这是完整的示例。希望对你有帮助

    Logback - set log file name programmatically

    【讨论】:

    • 这不仅仅是时间,还有从 Db 中检索的 getUsername() 方法。我是否以正确的方式使用?
    猜你喜欢
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多