【问题标题】:Cannot make a static reference to the non-static field for time [duplicate]无法对时间的非静态字段进行静态引用[重复]
【发布时间】:2013-02-25 12:17:49
【问题描述】:

您好,我正在尝试编写 Android 开发时间

import android.text.format.Time;

这是我在受保护的 void onCreate 内的 MainActivity 类中的代码。

TextView abc;
abc= (TextView) findViewById(R.id.clockTextView);
abc.setText("Time is " + Time.hour + ":" + Time.minute);

为什么我不断收到错误Cannnot make a static reference to the non-static field Time.hour,我该如何解决这个问题?谢谢。

【问题讨论】:

  • 创建一个对象然后使用它..在开始使用android之前先阅读核心java教程
  • @Pragnani - 这是不正确的。 Time.hourTime.minuteinstance 字段。

标签: java android time static


【解决方案1】:

android.text.format.Timehourminute 字段是实例字段。您需要创建Time 的实例才能访问它们:

TextView abc;
Time time = new Time(); // initialized to January 1, 1970 in default time zone
time.setToNow();
abc= (TextView) findViewById(R.id.clockTextView);
abc.setText("Time is " + time.hour + ":" + time.minute);

【讨论】:

    【解决方案2】:

    无法对非静态字段 Time.hour 进行静态引用

    这是因为您试图以静态方式访问非静态字段。 Time.hour 是一个实例字段(非静态),因此将其称为 Time.hour 没有意义,因为您没有 Time 实例。

    您需要创建一个Time 对象,然后才能使用myTime.hour

    【讨论】:

    • Time.hour 和 Time.minute 不是静态字段!
    • 这是倒退,不是吗? Time.hourTime.minute 不是静态字段。是否从静态方法访问它们并不重要;如果没有Time 对象的实例,就无法访​​问它们。错误消息甚至指出了这一点:“非静态字段 Time.hour”
    • 也许你把小时和小时混合在一起
    • 您的答案不正确。几乎全部! Time.hour 是 instance 字段,要访问非静态方法中的静态字段,您不需要创建类对象。
    • @baraky 我明白了,我只是在阅读此Cannnot make a static reference to the non-static 时感到困惑,不知道这些是静态字段还是实例字段。现在我正在评论其他答案。抱歉所以我无法编辑那个时间..谢谢...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 2014-02-02
    • 2021-11-04
    • 1970-01-01
    • 2014-06-08
    相关资源
    最近更新 更多