Как става assert() в Java?

4 отговора 146 прегледа
#1

Как става assert() в Java?

В момента аз съм си написал (copy/paste) един клас по подобие на тоя в Junit

class Assert
{
public static final boolean ENABLED = true;
public static void assertTrue(boolean expr);
}

и в кода:

if (Assert.ENABLED) Assert.assertTrue(.....);

идеята ми е, че този код би трябвало да се махне от Java компилатора (оптимизатора) , ако Assert.ENABLED = false (така ли е наистина?).
Има ли някой друга идея, така че да не правя тази проверка и въпреки всичко да има някакъв начин този код при определени условия да не присъства в компилирания?

Може въпросът ми да е нещо тривиално, ама пиша на Java едва от 10 дена и вече ми липсва препроцесора в C++.

Отговор
в отговор на josarjan #2

Re: Как става assert() в Java?

po nachina koito si go napisal shte raboti pravilno (t.e. shte mahne code-a ako ENABLED == false). pravilno si se orientiral che ENABLED triabwa da e final za da stane towa koeto iskash :) inache w jdk1.4 weche ima standarten assert. moje da probwash beta-ta ili da izchakash malko ;)

Отговор
в отговор на l #3

Re: Как става assert() в Java?

Az gledah malko doc-a na 1.4 - asserta im e gola voda po skromnoto mi nekompetentno mnenie...
Pozdravi.

Отговор
в отговор на josarjan #4

Re: Как става assert() в Java?

V Java niama predprocesor.
Tam ideata e druga. Nikoj ne go e enia za skorosta. :-)
Vazno e code da byde chist i lesen za poddryzka.
Moze da polzvash log4j ot apache.org. Tova e niakyv advanced logger.

Отговор
в отговор на josarjan #5

Re: Как става assert() в Java?

Da ste se mahne.
Sled kato setnesh flaga na false i precompilirash vsichko, tozi code
bi triabvalo da se mahne v compilatorite deto poddyrzat optimizacia.
No tova ne e zadylzitelno spored specifikaciata, preporychitelno e samo.
Java 1.3 go maha coda pri compilirane.

Отговор