Java >> Java tutorial >  >> Tag >> break

Hvordan bruger man betingelser i brudpunkter i idé?

tryk på CTRL+SHIFT+F8 to gange hurtigt ved dine pausepunkter åbner en dialog ikke en pop op-dialog at konfigurere en tilstand. tryk derefter på F1 for at åbne hjælpedialogen.

som intellij hjælpedokumentation siger, er en brudpunktstilstand:

Marker dette afkrydsningsfelt, og angiv en betingelse for at ramme et brudpunkt i tekstfeltet. En betingelse er et boolesk Java-udtryk (inklusive en metode, der returnerer sand eller falsk), for eksempel str1.equals(str2). Dette udtryk skal være gyldigt kl. linjen, hvor brudpunktet er sat, og evalueres hver gang brudpunktet nås. Hvis evalueringsresultatet er sandt, udføres brugervalgte handlinger. Hvis resultatet er falsk, giver brudpunktet ingen effekt. Hvis fejlfinderen ikke kan evaluere udtrykket, viser den tilstandsevalueringsfejlmeddelelsen. Du kan vælge, om du vil stoppe ved dette brudpunkt eller ignorere det. Betingelser for felt-/metode-/undtagelsesbrudpunkter beregnes i sammenhængen for det givne felt/metode/undtagelse. Til højre for feltet Betingelse er der knappen (Shift+Enter), der åbner multiline-editoren.

Bemærk

breakpoint condition består af java kode, så enhver fejl opstår i tilstand vil stoppe ved breakpoint. og den understøtter ikke nogen lambda-udtryk. når du beregner betingelsen med multi-udsagn, skal du bruge return erklæring for at returnere resultatet.

OG tilstanden kaster ofte NullPointerException for at stoppe brudpunktet. du skal tjekke null i pausepunktstilstand:

//change the condition
pdu.getVariables().size() == 13
                  ^-----throws a NullPointerException if variables is null

//to the condition using ternary operator for checking null
pdu.getVariables()==null ? false : pdu.getVariables().size()==13

Eksempler

for eksempel:

private String[] run(Class<?> mainClass
     , Optional<String> launcherClass, String[] args) {
    ...
    ^-----I mark a breakpoint here
}

min tilstand er og husk at tjekke afkrydsningsfeltet tilstand:

launcherClass != null

My Breakpoint Condition Screenshot


Java tag