Denne artikel introducerer dig til påstande i et simpelt, men alligevel vigtigt koncept, og følg det op med en programmatisk demonstration. Følgende punkter vil blive dækket i denne artikel,
- Hvorfor har du brug for påstande?
- Aktivering og deaktivering af Java-påstande
- Hvordan bruges Java-påstande?
- Hvor skal man ikke bruge påstand?
- Brug af påstande til operationer
Så lad os komme i gang,
Vil du teste, om en antagelse er korrekt i dit program? Nå, du kan gøre det med påstandssætninger i Java. Du kan bruge assert-nøgleordet til at oprette påstande, der giver dig mulighed for at teste dine antagelser i et program.
afslut et program i java
Lad os tage en instans. En medarbejder i en virksomheds ABC kan ikke have en alder, der er et negativt tal. Du kan bruge en påstand til dette for at sikre, at en medarbejders alder ikke er et negativt tal.
Lad os tage en anden instans. Hvis din metode beregner hastigheden på en partikel, er din antagelse, at partikelhastigheden er mindre end lysets hastighed. Så for at teste denne antagelse kan du bruge påstandssætninger i Java.
Syntaksen
Der er to former for påstanden:
asserteekspression1
Her,
udtryk 1 er et boolsk udtryk.
hævde udtryk1: udtryk2
I denne form er udtryk 1 et boolsk udtryk, og udtryk 2 har en værdi, der sammenlignes med udtryk1.
Nu spørger du måske - hvilken form vælger du til dine programmer? Du kan bruge den anden form, når dit program har yderligere oplysninger, der kan hjælpe med at diagnosticere fejl eller fejl i programmet.
Før java 1.4 kunne du have brugt nøgleordet 'assert' til at navngive dine variabler, metoder, funktioner og meget mere. Med nyere versioner af JVM kan dette potentielt forårsage et navngivende sammenstød - så du skal være lidt opmærksom på dette faktum.
Fortsætter med denne artikel om påstande i Java
Hvorfor har du brug for påstande?
Du tror måske, at en påstand i Java kan være unødvendig. Du finder det måske unødvendigt for små programmer. Men når det kommer til store programmer med kompleks logik, er disse påstandssætninger nyttige.
Den primære anvendelse af påstander er til fejlfinding og test. Hvis der er en fejl i påstanden, vil JVM kaste en fejl, der er mærket som en AssertionError. Som du kan se, tilbyder dette en effektiv måde at opdage og rette fejl i et program på.
Ud over fejlfinding og test gør påstanden din kode mere læselig. Lad os tage en instans:
Nedenstående kode hjælper os med at verificere visse forhold, der kan forhindre, at applikationen fungerer korrekt.
Forbindelse conn = getConnection () hvis (conn == null) {smid ny RuntimeException ('Forbindelse er nul')}
Med en enkelt påstand kan du i det væsentlige fjerne 'if and throw' -sætningen som vist nedenfor:
Forbindelse connect = getConnection () hævder conn! = Null
Fortsætter med denne artikel om påstande i Java
Aktivering og deaktivering af Java-påstande
Da Java-påstande bruger assert-nøgleordet, behøver du ikke importere pakker eller biblioteker. Som tidligere nævnt kan du bruge påstået nøgleord til variabler, metoder og funktioner. For bagudkompatibilitet og for at undgå et potentielt navngivningskonflikt deaktiverer JVM standardvalidering. Påstandene skal aktiveres eksplicit. Du kan gøre det med et kommandolinjeargument (-enableassertions) eller ved at bruge dets stenografi (-ea).
Lad os overveje et par eksempler:
java -ea com.baeldung.assertion.Assertion
Ovenstående muliggør påstand for klasser.
java -ea: com.baeldung.assertion ... com.baeldung.assertion.Assertion
Du kan også aktivere påstande for bestemte pakker og klasser. Dette vises i ovenstående eksempel, hvor vi har aktiveret påstande for klasserne i com.baeldung.assertion-pakken.
Nu hvor vi har lært om at aktivere påstande, skal vi se, hvordan vi kan deaktivere dem. Ligesom at aktivere påstande, kan deaktivering gøres ved hjælp af et kommandolinjeargument (-disableassertions) eller dets stenografi (-da) for specifikke pakker og klasser.
Fortsætter med denne artikel om påstande i Java
Hvordan bruges Java-påstande?
Der er to ting, du har brug for for at implementere påstande i dit program - påstå nøgleordet og en boolsk tilstand. Lad os tage et eksempel med et kodestykke:
offentlig tomrumsopsætning () {Connection connect = getConnection () assert conn! = null}
Du kan også bruge en streng til ovenstående påstande som vist nedenfor:
offentlig tomrumsopsætning () {Connection connect = getConnection () assert conn! = null: 'Connection is null'}
I ovenstående kodestykke, hvis der er en AssertionError, vil strengen blive brugt til at konstruere fejlen.
I begge ovennævnte tilfælde kontrollerer koden, om forbindelsen til en ekstern kilde returnerer en ikke-nul-værdi. Hvis værdien er nul, kaster JVM automatisk en AssertionError.
I det andet eksempel vises strengen, som vi har brugt, i stakksporingen, når der er en AssertionError. Disse yderligere oplysninger vil være nyttige, når du forsøger at fejle programmet. Disse detaljerede meddelelser hjælper dig med at rette en fejl, der ville have fået påstanden til at mislykkes. Så når du kører klassen med påstande aktiveret, vil resultatet ligne det nedenfor:
Undtagelse i tråden 'main' java.lang.AssertionError: Forbindelsen er nul
på com.baeldung.assertion.Assertion.setup (Assertion.java:15)
på com.baeldung.assertion.Assertion.main (Assertion.java:10)
Lad os overveje et simpelt eksempel:
import java.util.Scanner klasse AssertionExample {public static void main (String args []) {Scannerscanner = ny Scanner (System.in) System.out.print ('Indtast din alder') int værdi = scanner.nextInt () assert value> = 18: 'Not valid' System.out.println ('value is' + value)}}
Nu hvor du har koden i hånden, er det tid til at køre den. Da påstande er deaktiveret som standard, skal du aktivere dem.
Du kan kompilere ovenstående kode med følgende: javac AssertionExample.java
Du kan derefter køre det ved hjælp af følgende: java -ea AssertionExample
Det produktion for ovenstående kode er:
Indtast din alder 11
Undtagelse i tråden “main” java.lang.AssertionError: Ikke gyldig
Som du kan se, har vi givet 11 som værdi for alderen. Programmet behandler det ikke som en legitim værdi. Så du vil se en AssertionError.
def __init__
Fortsætter med denne artikel om påstande i Java
Hvor skal man ikke bruge påstand?
Selv om det er godt at have påstande i situationer, der inkluderer interne invarianter, control-flow invarianter, forudsætninger, postconditions og class invariants, er der nogle situationer, hvor påstande ikke skal bruges.
Lad os udforske mere om disse:
Til argumentkontrol i offentlige metoder
Du skal forstå, at argumentkontrol er en del af offentliggjorte specifikationer eller kontrakter med en metode. Disse skal følges, uanset om påstande er aktiveret eller ej.
Fortsætter med denne artikel om påstande i Java
Brug af påstande til operationer
Påstande er som standard deaktiveret. Dit program skal ikke antage, at det boolske udtryk i en påstand altid skal evalueres.
Lad os tage et eksempel på, hvordan dette kan påvirke dit program. Sig, du vil fjerne alle null-elementerne fra en liste med navne, og du er opmærksom på, at din liste indeholder null-elementer.
hæv navne. fjern (null)
Ovenstående kodestykke fungerer, hvis påstande blev aktiveret. Men det ville mislykkes, hvis påstande blev deaktiveret, da koden ikke fjerner nogen nul-elementer. For at løse dette problem kan du bruge nedenstående kodestykke i dit program:
boolske nullsRemoved = names.remove (null)
assert nullsFjernet
Ovenstående kodestykke fjerner nulværdier, selvom påstande blev deaktiveret.
Efter udførelsen af ovenstående Java-program ville du have forstået “Påstande i Java”. Således er vi nået til slutningen af denne artikel om 'Quicksort in Java'. Hvis du ønsker at lære mere,tjek den af Edureka, et betroet online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.
Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.