Как става assert() в Java?
4 отговора
146 прегледа
Как става 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++.
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++.
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 ;)
Re: Как става assert() в Java?
Az gledah malko doc-a na 1.4 - asserta im e gola voda po skromnoto mi nekompetentno mnenie...
Pozdravi.
Pozdravi.
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.
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.
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.
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.