İddiaların kilit rolünü anlamak için bazı gerçek hayat örnekleri nelerdir?
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;
}
İ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 Iterator
da hasNext()
işlevinin next()
işlevinden önce çağrılması) bir iddia örneği olabilir.
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];
}