Ovaj vas članak upoznaje s tvrdnjama In jednostavan, ali važan koncept i slijedite ga programskim demonstracijama. U ovom će članku biti obrađeni sljedeći putokazi,
- Zašto su vam potrebne tvrdnje?
- Omogućavanje i onemogućavanje Java tvrdnji
- Kako koristiti Java tvrdnje?
- Gdje ne koristiti tvrdnju?
- Korištenje tvrdnji za operacije
Pa krenimo,
Želite li testirati je li pretpostavka ispravna u vašem programu? Pa, to možete učiniti s izjavama o tvrdnjama na Javi. Pomoću ključne riječi assert možete stvoriti tvrdnje koje vam omogućuju testiranje pretpostavki u programu.
Uzmimo primjer. Zaposlenik u tvrtki ABC ne može imati dob koja je negativan broj. Za to možete upotrijebiti tvrdnju kako biste osigurali da dob zaposlenika nije negativan broj.
Uzmimo još jednu instancu. Ako vaša metoda izračunava brzinu čestice, tada je vaša pretpostavka da je brzina čestice manja od brzine svjetlosti. Dakle, da biste testirali ovu pretpostavku, možete koristiti tvrdnje o tvrdnjama u Javi.
Sintaksa
Postoje dva oblika izjave o tvrdnji:
assertexpression1
Ovdje,
izraz 1 je logički izraz.
apstrakcija podataka c ++
tvrditi izraz1: izraz2
U ovom je obliku izraz 1 logički izraz, a izraz 2 ima vrijednost koja će se usporediti s izrazom1.
Sad biste mogli pitati - koji oblik odabirete za svoje programe? Drugi obrazac možete koristiti kada vaš program ima dodatne informacije koje mogu pomoći u dijagnosticiranju pogrešaka ili kvara u programu.
Prije jave 1.4, mogli ste koristiti ključnu riječ 'assert' za imenovanje varijabli, metoda, funkcija i još mnogo toga. S novijim verzijama JVM-a to potencijalno može dovesti do sukoba imenovanja - pa morate biti malo pažljivi u vezi s tom činjenicom.
Nastavljamo s ovim člankom o Tvrdnjama u Javi
Zašto su vam potrebne tvrdnje?
Možda mislite da bi izjava o tvrdnji na Javi mogla biti nepotrebna. Možda ćete smatrati nepotrebnim za male programe. Ali, kada su u pitanju veliki programi sa složenom logikom, ove izjave dobro dođu.
Primarna upotreba izjava za tvrdnju je za ispravljanje pogrešaka i testiranje. Ako u izjavi o tvrdnji postoji bilo kakav kvar, tada će JVM izbaciti pogrešku koja je označena kao AssertionError. Kao što vidite, ovo nudi učinkovit način otkrivanja i ispravljanja pogrešaka u programu.
Uz ispravljanje pogrešaka i testiranje, izjava o tvrdnji čini vaš kôd čitljivijim. Uzmimo primjer:
Kôd u nastavku pomoći će nam da provjerimo određene uvjete koji mogu spriječiti da aplikacija radi ispravno.
Veza conn = getConnection () if (conn == null) {throw new RuntimeException ('Connection is null')}
Jednom izjavom o tvrdnji u osnovi možete ukloniti izjavu 'ako i baci' kako je prikazano u nastavku:
Veza conn = getConnection () potvrđuje conn! = Null
Nastavljamo s ovim člankom o Tvrdnjama u Javi
Omogućavanje i onemogućavanje Java tvrdnji
Kako Java tvrdnje koriste ključnu riječ assert, nećete trebati uvoziti pakete ili knjižnice. Kao što je ranije spomenuto, možete koristiti ključnu riječ assert za varijable, metode i funkcije. Radi kompatibilnosti s unatrag i kako bi se izbjegao potencijalni sukob imenovanja, JVM prema zadanim postavkama onemogućuje provjeru valjanosti tvrdnji. Tvrdnje moraju biti izričito omogućene. To možete učiniti s argumentom naredbenog retka (-enableassertions) ili pomoću njegove skraćenice (-ea).
Razmotrimo nekoliko primjera:
java -ea com.baeldung.assertion.Assertion
Navedeno omogućuje tvrdnju za nastavu.
java -ea: com.baeldung.assertion… com.baeldung.assertion.Assertion
Možete omogućiti tvrdnje i za određene pakete i klase. To je prikazano u gornjem primjeru gdje smo omogućili tvrdnje za klase u paketu com.baeldung.assertion.
Sad kad smo naučili omogućavanje tvrdnji, pogledajmo kako ih možemo onemogućiti. Slično poput omogućavanja tvrdnji, onemogućavanje se može izvršiti pomoću argumenta naredbenog retka (-disableassertions) ili njegove skraćenice (-da) za određene pakete i klase.
Nastavljamo s ovim člankom o Tvrdnjama u Javi
Kako koristiti Java tvrdnje?
Dvije su stvari koje trebate implementirati u svoj program - ključna riječ assert i logički uvjet. Uzmimo primjer s isječkom koda:
javna void postavka () {Connection conn = getConnection () assert conn! = null}
Također možete upotrijebiti niz za gornje tvrdnje kao što je prikazano dolje:
public void setup () {Connection conn = getConnection () assert conn! = null: 'Veza je null'}
U gornjem isječku koda, ako postoji AssertionError, niz će se koristiti za konstrukciju pogreške.
U oba gore navedena slučaja kôd provjerava vraća li veza s vanjskim izvorom ne-null vrijednost. Ako je vrijednost null, tada će JVM automatski izbaciti AssertionError.
U drugom primjeru, niz koji smo koristili prikazuje se u tragu steka kada postoji AssertionError. Ove će dodatne informacije biti korisne kada pokušavate otkloniti pogreške u programu. Ove detaljne poruke pomoći će vam da popravite pogrešku koja bi uzrokovala neuspjeh tvrdnje. Dakle, kada pokrenete klasu s omogućenim tvrdnjama, rezultat će biti sličan onome u nastavku:
Iznimka u niti 'main' java.lang.AssertionError: Veza je null
na com.baeldung.assertion.Assertion.setup (Assertion.java:15)
na com.baeldung.assertion.Assertion.main (Assertion.java:10)
Razmotrimo jednostavan primjer:
import java.util.Scanner class AssertionExample {public static void main (String args []) {Scanner scanner = new Scanner (System.in) System.out.print ('Enter your age') int value = scanner.nextInt () potvrditi vrijednost> = 18: 'Nije važeće' System.out.println ('vrijednost je' + vrijednost)}}
Sad kad imate kod u rukama, vrijeme je da ga pokrenete. Budući da su tvrdnje prema zadanim postavkama onemogućene, morat ćete ih omogućiti.
Gornji kod možete kompilirati sa sljedećim: javac AssertionExample.java
Tada ga možete pokrenuti pomoću sljedećeg: java -ea AssertionExample
The izlaz za gornji kod je:
Unesite svoju dob 11 godina
Iznimka u niti 'main' java.lang.AssertionError: Nije važeća
Kao što vidite, dali smo 11 kao vrijednost za dob. Program ga ne tretira kao legitimnu vrijednost. Dakle, vidjet ćete AssertionError.
Nastavljamo s ovim člankom o Tvrdnjama u Javi
Gdje ne koristiti tvrdnju?
Iako je dobro imati tvrdnje u situacijama koje uključuju unutarnje invarijante, invarijante protoka upravljanja, preduvjete, postuslove i invarijante klase, postoje neke situacije u kojima se tvrdnje ne bi trebale koristiti.
Istražimo više o ovome:
Za provjeru argumenata u javnim metodama
Trebali biste razumjeti da je provjera argumenata dio objavljenih specifikacija ili ugovora o metodi. To se mora slijediti bez obzira na to jesu li tvrdnje omogućene ili ne.
Nastavljamo s ovim člankom o Tvrdnjama u Javi
Korištenje tvrdnji za operacije
Prema zadanim postavkama tvrdnje su onemogućene. Vaš program ne bi trebao pretpostaviti da će se logički izraz u izjavi za tvrdnju uvijek procijeniti.
Uzmimo primjer kako to može utjecati na vaš program. Recimo, želite ukloniti sve null elemente s popisa imena i svjesni ste da vaš popis sadrži null elemente.
tvrditi imena.remove (null)
Gornji isječak koda radio bi ako su omogućene tvrdnje. Ali, propao bi ako bi se tvrdnje onemogućile jer kod neće ukloniti nikakve null elemente. Da biste riješili taj problem, u svoj program možete upotrijebiti donji isječak koda:
boolean nullsRemoved = names.remove (null)
tvrditi nullUklonjeno
Gornji isječak koda uklonit će null vrijednosti, čak i ako su tvrdnje onemogućene.
Sada biste nakon izvršavanja gornjeg Java programa razumjeli 'Tvrdnje u Javi'. Tako smo došli do kraja ovog članka o 'Quicksort u Javi'. Ako želite saznati više,provjerite Edureka, pouzdane tvrtke za internetsko učenje. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA osmišljen je kako bi vas osposobio za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.
Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.