1 Ocak 2017 Pazar

Clock Sınıfı

Giriş
Şu satırı dahil ederiz
import java.time.Clock;
Soyut bir sınıftır. Açıklaması şöyle
to allow alternate clocks to be plugged in as and when required
Kullanım
1. fixed(), systemDefaultZone(), systemUTC() metodlarından birisi çağrılarak bir Clock elde edilir ve bu nesnenin instant() metodu çağrılır
2. fixed(), systemDefaultZone(), systemUTC() metodlarından birisi çağrılarak bir Clock elde edilir ve bu nesne Insant.now() metoduna geçilir.

Örnek
Şöyle yaparız
import java.time.Clock;
import java.time.Instant;
import java.util.Objects;
import java.util.Optional;

public class ExpiringValue<T> {
  private final T value;

  private final Instant expiresAt;

  private final Clock clock;

  public ExpiringValue(T value, Instant expiresAt) {
    this(value, expiresAt, Clock.systemDefaultZone());
  }

  public ExpiringValue(T value, Instant expiresAt, Clock clock) {
    this.value = Objects.requireNonNull(value);
    this.expiresAt = Objects.requireNonNull(expiresAt);
    this.clock = Objects.requireNonNull(clock);
  }

  public Optional<T> get() {
    return isExpired() ? Optional.empty() : Optional.ofNullable(value);
  }

  private boolean isExpired() {
    return !Instant.now(clock).isBefore(expiresAt);
  }
}
fixed metodu
Şöyle yaparız.
Clock clk = Clock.fixed( 
  Instant.parse( "2016-01-23T12:34:56Z" , ZoneOffset.UTC )
);
instant metodu
Şöyle yaparız.
Instant now = Clock.systemUTC().instant();
systemDefaultZone metodu
Şöyle yaparız.
Clock clk = Clock.systemDefaultZone ();
system metodu
Şöyle yaparız.
Instant now = Instant.now ( Clock.systemUTC () );
Instant now = Instant.now ( Clock.system ( ZoneId.of ( "America/Montreal" ) ) );
Instant now = Instant.now ( Clock.systemDefaultZone () );
systemUTC metodu

Şöyle yaparız.
Clock clk =  Clock.systemUTC();

Hiç yorum yok:

Yorum Gönder