在Java上使用Class Clock中的tickSeconds方法

时间:2014-12-22 22:50:03

标签: java java-8 clock

我正在为一个时钟制作一个Swing应用程序。

我试图找到当前时间,最后使用System.currentTimeMillis(),但我仍然很好奇如何解决这个问题。我得到了很多与此类似的错误,所以我想知道如何解决这个问题。

Doc:http://docs.oracle.com/javase/8/docs/api/java/time/Clock.html#system-java.time.ZoneId-

首先,我试过

Clock second;
second = Clock.tickSeconds(Clock.getZone());

但我收到错误non-static method getZone() cannot be referenced from a static context

所以我试过

Clock second;
second = Clock.tickSeconds(new Clock.getZone());

但我明白了:

cannot find symbol
symbol:   class getZone
location: class Clock

那么如何编辑代码来修复错误?

1 个答案:

答案 0 :(得分:1)

getZone()是一个实例方法,因此您需要先获取Clock的实例:

second = Clock.tickSeconds(Clock.systemDefaultZone().getZone());

new Clock.getZone()无效,因为

  1. 使用括号
  2. 调用构造函数
  3. Clock是抽象类,因此无法直接实例化。