Avatar billede andersj Nybegynder
07. juli 2002 - 00:38 Der er 16 kommentarer og
1 løsning

if () {} ????????

Hej, jeg har problemer med en if sæt...



    String Name = "";
    String Addr = "Veggervej 16";
    String Zip =  "";
   
    if (Name != null){
        out.println("test1");
    }

    if (Zip != null){
        out.println("test2");
    }

    if (Addr != null){
        out.println("test3");
    }

Den skriver

test1test2test3

men Name og Zip er jo Null....

?
Avatar billede bearhugx Nybegynder
07. juli 2002 - 00:44 #1
Nej ... Name og Zip  er tomme strenge.. Men de er instantierede objekter...

Derfor er dit output rigtigt...
Avatar billede disky Nybegynder
07. juli 2002 - 00:44 #2
nej det er ikke 'null' der er "" altså tomme, men Strin objektet findes

ret til

if(Zip.equals(""))
{
%>
Test1
<%
}
Avatar billede disky Nybegynder
07. juli 2002 - 00:44 #3
p.s. det er meget grim JSP at bruge out.println til at udskrive text
Avatar billede bearhugx Nybegynder
07. juli 2002 - 00:45 #4
Hvis du derimod vil teste om
1) objektet ikke er null (dvs. instantieret)
2) strengen har et indhold, så brug følgende

if( addr != null )
  if( !addr.equals(""))
    out.println(" Der er gyldigt indhold i addr ");
Avatar billede bearhugx Nybegynder
07. juli 2002 - 00:46 #5
disky.. Bør han ikke først teste om objektet overhovedet er instantieret først  <<  if(obj!=null) >>
.....
Avatar billede andersj Nybegynder
07. juli 2002 - 00:48 #6
Tak begge.... men jeg har valgt disky svar.... "You are a life saver!!"
Avatar billede andersj Nybegynder
07. juli 2002 - 00:49 #7
disky's svar virkede...
Avatar billede bearhugx Nybegynder
07. juli 2002 - 00:51 #8
Det kommer an på ens kodestil, om det er "korrekt" eller ej at bruge out.print("...");

Det man bør kigge på er, om selve koden, dvs. JSP-koden, bliver mere læsebar ved at bruge betingede tags
dvs.
if(....){
%> betinget output <%
}

eller om et
  out.println("...") 
er i orden...

For mig har det noget at gøre med, hvormeget der skal outputtes i forbindelse med et udsagn...
Avatar billede bearhugx Nybegynder
07. juli 2002 - 00:52 #9
*Suk* ...
Avatar billede andersj Nybegynder
07. juli 2002 - 00:52 #10
oki
Avatar billede andersj Nybegynder
07. juli 2002 - 00:52 #11
Sorry :)
Avatar billede bearhugx Nybegynder
07. juli 2002 - 00:54 #12
Jeg fatter det ikke - jeg kommer med et korrekt svar - men Disky kommer først med "ret til..." sætningen ...

Måske skulle jeg i fremtiden bare lave folks kode, istedet for at forklare dem, hvad der egenligt går galt --- Så meget for Viden-deling!

/Søren Munk Skrøder
Avatar billede disky Nybegynder
07. juli 2002 - 01:04 #13
såsåså Søren

Man er vel ikke mobset her om natten vel ?
http://www.eksperten.dk/spm/233191

Der er ingen grundt til at checke for null hvis han selv instatierer objektet, men bliver det hente med request.getParameter() så skal man gøre

if(addr!=null && !addr.equals())
{
%>
Bingo
<%
}
Avatar billede andersj Nybegynder
07. juli 2002 - 01:05 #14
Jaaaaaaa, jeg koder så mange forskellig sprog, så det er ikke altid jeg kan huske de forskellig ting, kunne bare ikke lige se fejlen....
Avatar billede disky Nybegynder
07. juli 2002 - 01:05 #15
bearhugx:
Jeg fortæller hvad der er galt OG kommer med kode :-)
Avatar billede bearhugx Nybegynder
07. juli 2002 - 01:10 #16
Disky...

Vil testen af statementet allerede skippe efter testen af Udsagn_A i

if( UDSAGN_A && UDSAGN_B )

Hvis udsagn_a er falsk...

Ellers er der da potentiale for en NullPointerException ?????...

Ang. Kode : Det gør du somend - og der er No Hard Feelings -- Jeg troede bare at dette var en case "Hjælpe gutten på vej" i stedet for at poste svaret med det samme...

/Søren :-)
Avatar billede disky Nybegynder
07. juli 2002 - 01:14 #17
yep det ville den, && kræver jo begge er sande, så hvis den første fejler fortsætter java ikke, reelt gætter jeg på din kode giver samme bytekode, fylder bere mere i source

Jeg synes tit eksempler hjælper mere end text, men det er jo smag og behag.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester