Kuidas Java väiteid kõige paremini kasutada?

See artikkel tutvustab teile Java väiteid lihtsa, kuid samas olulise kontseptsiooni ja järgib seda programmilise tutvustusega.

See artikkel tutvustab teid rakenduses Kinnitused lihtne, kuid oluline mõiste ja järgige seda programmilise demonstratsiooniga. Järgmisi näpunäiteid käsitletakse selles artiklis,



Alustagem siis



Kas soovite testida, kas eeldus on teie programmis õige? Noh, saate seda teha Java väitega. Märksõna assert abil saate luua väiteid, mis võimaldavad teil eeldusi programmis testida.

Võtame näite. Ettevõtte ABC töötajal ei saa olla vanust, mis on negatiivne arv. Selleks võite kasutada väidet, et töötaja vanus ei oleks negatiivne arv.



kuidas saada tehisintellekti inseneriks

Võtame veel ühe näite. Kui teie meetod arvutab osakese kiiruse, siis eeldate, et osakese kiirus on väiksem kui valguse kiirus. Niisiis saate selle eelduse testimiseks kasutada Java väiteid.

Süntaks

Väite avaldusel on kaks vormi:



asspressioon1

Siin,

avaldis 1 on tõeväärtus.

kinnita avaldis1: avaldis2

Selles vormis on avaldis 1 logiline avaldis ja avaldisel 2 on väärtus, mida võrreldakse avaldisega1.

Nüüd võite küsida - millise vormi valite oma programmide jaoks? Teist vormi saate kasutada siis, kui teie programmis on lisateavet, mis võib aidata diagnoosida programmi vigu või tõrkeid.

Enne java 1.4 oleksite võinud muutujate, meetodite, funktsioonide ja palju muu nimetamiseks kasutada märksõna “kinnita”. JVM-i uuemate versioonide korral võib see potentsiaalselt põhjustada nimede kokkupõrke - seega peate selle fakti suhtes veidi tähelepanelik olema.

Selle Java-väitete kohta käiva artikliga edasi liikumine

Miks vajate väiteid?

Võib arvata, et Java väide võib olla tarbetu. Võib juhtuda, et see pole väikeste programmide jaoks vajalik. Kuid kui tegemist on keeruka loogikaga suurte programmidega, on need väited kasulikud.

Kinnituslausete esmane kasutusala on silumine ja testimine. Kui väites avalduses esineb tõrkeid, viskab JVM tõrke, mis on märgitud kui AssertionError. Nagu näete, pakub see tõhusat viisi vigade tuvastamiseks ja parandamiseks programmis.

Lisaks silumisele ja testimisele muudab väide väite teie koodi loetavamaks. Võtame näite:

Allolev kood aitab meil kontrollida teatud tingimusi, mis võivad takistada rakenduse korralikku toimimist.

Ühendus conn = getConnection () if (conn == null) {visake uus RuntimeException ('Ühendus on null')}

Ühe väite väitega saate põhimõtteliselt kaotada lause „kui ja viskan”, nagu allpool näidatud:

Ühendusühendus = getConnection () kinnitab ühendust! = Null

Selle Java-väitete kohta käiva artikliga edasi liikumine

Java väidete lubamine ja keelamine

Kuna Java väited kasutavad märksõna assert, ei pea te pakette ega teeke importima. Nagu varem mainitud, saate märksõna assert kasutada muutujate, meetodite ja funktsioonide jaoks. Tagurpidi ühilduvuse tagamiseks ja võimaliku nimede kokkupõrke vältimiseks keelab JVM vaikimisi väite kinnitamise. Väited tuleb lubada selgesõnaliselt. Seda saate teha käsureaargumendiga (-enableassertions) või selle lühikirja (-ea) abil.

Vaatleme mõnda näidet:

java -ea com.baeldung.assertion.Väide

Eeltoodu võimaldab klassides väitmist.

java -ea: com.baeldung.assertion… com.baeldung.assertion.Assertion

Võite lubada väited ka konkreetsete pakettide ja klasside jaoks. Seda näitab ülaltoodud näide, kus oleme lubanud väited klassis paketis com.baeldung.assertion.

Nüüd, kui oleme väidete lubamise kohta teada saanud, vaatame, kuidas saaksime need keelata. Sarnaselt väidete lubamisele saab keelata ka konkreetsete pakettide ja klasside käsureaargumendi (-disableassertions) või selle lühikirja (-da) abil.

Selle Java-väitete kohta käiva artikliga edasi liikumine

Kuidas Java väiteid kasutada?

Väidete rakendamiseks oma programmis on vaja kahte asja - märksõna assert ja tõeväärtus. Võtame näite koodilõiguga:

public void setup () {Connection conn = getConnection () kinnita conn! = null}

Samuti võite ülaltoodud väidete jaoks kasutada stringi, nagu allpool näidatud:

public void setup () {Connection conn = getConnection () assert conn! = null: 'Ühendus on null'}

Kui ülaltoodud koodijupis on AssertionError, kasutatakse vea koostamiseks stringi.

minu sql õpetused algajatele

Mõlemal ülaltoodud juhul kontrollib kood, kas ühendus välise allikaga tagastab nullväärtuse. Kui väärtus on null, siis viskab JVM automaatselt AssertionError'i.

Teises näites kuvatakse string, mida oleme kasutanud, virnajäljes, kui on olemas AssertionError. See lisateave on kasulik, kui proovite programmi siluda. Need üksikasjalikud teated aitavad teil parandada vea, mis oleks väite nurjunud. Seega, kui käivitate klassi lubatud väidetega, on tulemus sarnane allolevaga:

Erand lõimes “main” java.lang.AssertionError: Ühendus on null
aadressil com.baeldung.assertion.Assertion.setup (Assertion.java:15)
aadressil com.baeldung.assertion.Assertion.main (Assertion.java:10)

Vaatleme lihtsat näidet:

import java.util.Scanner class AssertionExample {public static void main (String args []) {Scanner scanner = new Scanner (System.in) System.out.print ('Sisesta oma vanus') int value = scanner.nextInt () kinnita väärtus> = 18: 'Kehtetu' System.out.println ('väärtus on' + väärtus)}}

Nüüd, kui kood on käes, on aeg see käivitada. Kuna väited on vaikimisi keelatud, peate need lubama.

Ülaltoodud koodi saate koostada järgmiselt: javac AssertionExample.java

Seejärel saate selle käivitada järgmise abil: java -ea AssertionExample

The väljund ülaltoodud koodi jaoks on:

Sisestage oma vanus 11

Erand lõimes “main” java.lang.AssertionError: ei kehti

Nagu näete, oleme andnud vanuse väärtuseks 11. Programm ei käsitle seda õigustatud väärtusena. Niisiis, näete AssertionErrorit.

Selle Java-väitete kohta käiva artikliga edasi liikumine

Kus väidet mitte kasutada?

Kuigi on hea omada väiteid olukordades, mis hõlmavad sisemisi invariante, kontrollivoo invariante, eeltingimusi, järeltingimusi ja klassi invariante, on siiski olukordi, kus väiteid ei tohiks kasutada.

Uurime nende kohta rohkem:

Argumentide kontrollimiseks avalikes meetodites

Peaksite mõistma, et argumentide kontrollimine on osa meetodi avaldatud spetsifikatsioonidest või lepingutest. Neid tuleb järgida olenemata sellest, kas väited on lubatud või mitte.

Selle Java-väitete kohta käiva artikliga edasi liikumine

Kinnituste kasutamine toiminguteks

Vaikimisi on väited keelatud. Teie programm ei tohiks eeldada, et väite väite tõeväärtuse lauset alati hinnatakse.

Võtame näite, kuidas see võib teie programmi mõjutada. Oletame, et soovite nimede loendist eemaldada kõik nullelemendid ja olete teadlik, et teie loend sisaldab nullelemente.

kinnita nimesid. eemalda (null)

Ülaltoodud koodilõik toimiks, kui väited oleks lubatud. Kuid see ebaõnnestub, kui väited keelatakse, kuna kood ei eemalda tühje elemente. Selle probleemi lahendamiseks võite oma programmis kasutada järgmist koodilõiku:

boolean nullsRemoved = nimed.remove (null)
kinnita nullidEemaldatud

Ülaltoodud koodijupp eemaldab nullväärtused, isegi kui väited on keelatud.

Nüüd, pärast ülaltoodud Java-programmi käivitamist, oleksite mõistnud 'Java väiteid'. Nii oleme jõudnud selle artikli juurde, mis käsitleb teemat ‘Quicksort in Java’. Kui soovite rohkem teada saada,vaadake autor Edureka, usaldusväärne veebipõhine õppefirma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java põhiliste kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle blogi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.