2012-10-23 12 views

Odpowiedz

23

Używam tego

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

nie jestem pewien, że to jest "oficjalny" sposób.

+0

To spowodowałoby jednak błąd AssertionError, prawda? – Thilo

+4

Za każdym razem "prawda" to "fałsz";) –

+1

Ah, przeczytaj '=' jako '=='. Widzę. Sprytny. – Thilo

18
+1

to jest prawidłowa odpowiedź – bestsss

+1

to uniknąć ewentualnego „przypadkowe powierzenie” ostrzeżenie, że pochodzi z innym podejściem. –

+2

Właściwie z javadoc: "Zauważ, że ta metoda nie gwarantuje powrotu faktycznego stanu asercji, który był (lub będzie) powiązany z określoną klasą, kiedy był (lub będzie) zainicjowany.". Tak więc ta odpowiedź wydaje mi się błędna i powinieneś rozważyć odpowiedź Joe. – FBB

14

Oracle Java Tutorial dostarcza informacji o tym, jak to zrobić ...

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

Fragment samouczka

7. Dlaczego nie dostarczają konstrukt aby zapytać o status wymuszenia klasy zawierającej?

Taki konstrukt zachęciłby ludzi do wstawiania złożonego kodu twierdzenia , który uważamy za coś złego. Ponadto, jest proste do zapytania status assert szczycie aktualnego API, jeśli czujesz, że muszą:

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"); 
Powiązane problemy