Java assert anahtar sözcüğü ne işe yarar ve ne zaman kullanılmalıdır?

İddiaların kilit rolünü anlamak için bazı gerçek hayat örnekleri nelerdir?

Çözüm

Assertions (assert anahtar sözcüğü aracılığıyla) Java 1.4'te eklenmiştir. Koddaki bir değişmezin doğruluğunu doğrulamak için kullanılırlar. Üretim kodunda asla tetiklenmemelidirler ve bir hatanın veya bir kod yolunun yanlış kullanımının göstergesidirler. Çalışma zamanında java komutundaki -ea seçeneği ile etkinleştirilebilirler, ancak varsayılan olarak açık değildirler.

Bir örnek:

public Foo acquireFoo(int id) {
  Foo result = null;
  if (id > 50) {
    result = fooService.read(id);
  } else {
    result = new Foo(id);
  }
  assert result != null;

  return result;
}
Yorumlar (6)

İtirazlar, son koşulları ve "asla başarısız olmamalı" ön koşullarını kontrol etmek için kullanılır. Doğru kod hiçbir zaman bir iddiada başarısız olmamalıdır; tetiklendiklerinde, bir hataya işaret etmelidirler (umarım sorunun gerçek yerinin olduğu yere yakın bir yerde).

Belirli bir yöntem grubunun doğru sırada çağrılıp çağrılmadığını kontrol etmek (örneğin, bir Iteratorda hasNext() işlevinin next() işlevinden önce çağrılması) bir iddia örneği olabilir.

Yorumlar (2)

Bir Stack sınıfından gerçek dünyadan bir örnek (Java Makalelerinde Assertion'den)

public int pop() {
   // precondition
   assert !isEmpty() : "Stack is empty";
   return stack[--num];
}
Yorumlar (7)