2012-10-23 11 views

cevap

23

kullanmalıdır sanırım.

+0

Bu bir AssertionError atardı, değil mi? – Thilo

+4

Her defasında "true", "false";) –

+1

Ah, '=' as '==' olarak okunur. Anlıyorum. Zeki. – Thilo

18

Sana bu "resmi" bir yol olduğundan emin değilim ben bu

boolean assertOn = false; 
// *assigns* true if assertions are on. 
assert assertOn = true; 

kullanmak Class.desiredAssertionStatus()

http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#desiredAssertionStatus()

+1

bu doğru cevap – bestsss

+1

Bu gelir olası "kazara atama" uyarısı önler olduğunu diğer yaklaşımla. –

+2

Aslında, javadoc'tan: "Bu yöntemin, başlangıç ​​durumuna getirildiğinde (veya başlatılacağı zaman) belirtilen sınıfla ilişkili (veya olacak) gerçek onaylama durumunu döndürmesi garanti edilmez.". Bu cevap bana yanlış geliyor ve Joe'nun cevabını düşünmelisin. – FBB

14

Oracle Java Eğitimi bunu nasıl yapılacağı hakkında bilgi sağlar ...

http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html

öğretici

7. bir alıntı Neden assert durumunu sorgulamak için bir yapı sağlamaz içeren sınıfın

Böyle bir yapı, insanları kötü bir şey olarak gördüğümüz karmaşık iddiaları kod satır içi satır içine almaya teşvik eder. Ayrıca, mevcut API tepesinde assert durumu sorguya basittir, size gerekir hissetmiyorsanız:

boolean assertsEnabled = false; 
assert assertsEnabled = true; // Intentional side-effect!!! 
// Now assertsEnabled is set to the correct value 
0
RuntimeMXBean mx = ManagementFactory.getRuntimeMXBean(); 
boolean assertionsEnabled = mx.getInputArguments().contains("-ea"); 
İlgili konular