4 svar
112 visningar
TB16 behöver inte mer hjälp
TB16 182 – Fd. Medlem
Postad: 28 nov 2017 14:31

Kontrollera ifall användarnamnet redan existerar

Betrakta följande rader kod: 

public void add(String userName,String listCsv)
throws IllegalArgumentException
{
if ( userName == null )
userName = "";
userName = userName.trim().toLowerCase();

Min fråga: Vad säger egentligen de tre sista raderna? Om användarnamnet inte finns så skapar vi en tom sträng som vi sedan konverterar till små bokstäver? 

Stokastisk 3597 – Fd. Medlem
Postad: 28 nov 2017 14:55

Om userName är null så sätter du userName till en tom sträng. Detta är det enda som händer i if-satsen.

Raden efter det händer oavsett om userName är null eller ej och den gör så att den tar bort "whitespace" alltså, tabs radbyten mellanslag och liknande, i början och i slutet av strängen. Sedan gör den om all text till gemener.

TB16 182 – Fd. Medlem
Postad: 28 nov 2017 15:36
Stokastisk skrev :

Om userName är null så sätter du userName till en tom sträng. Detta är det enda som händer i if-satsen.

Raden efter det händer oavsett om userName är null eller ej och den gör så att den tar bort "whitespace" alltså, tabs radbyten mellanslag och liknande, i början och i slutet av strängen. Sedan gör den om all text till gemener.

Okej, glömde att måsvingarna inte fanns med i koden. Vad är syftet med att skapa en tom sträng? För att den skall peka på något? I vilka fall kan username vara null? 
Kommer inte username alltid vara null innan den läggs till?

Stokastisk 3597 – Fd. Medlem
Postad: 28 nov 2017 15:44

userName kommer ha det värde man anropar funktionen med. Om det är med ett null-värde så kommer det vara null. Alltså om man anropar något liknande

add(null, "listCsv");

då kommer userName vara null. Antag att man inte hanterar null fallet, då kommer raden

userName.trim().toLowerCase();

orsaka en NullPointerException, så för att undvika detta så låter man userName vara en tom sträng.

TB16 182 – Fd. Medlem
Postad: 28 nov 2017 17:35
Stokastisk skrev :

userName kommer ha det värde man anropar funktionen med. Om det är med ett null-värde så kommer det vara null. Alltså om man anropar något liknande

add(null, "listCsv");

då kommer userName vara null. Antag att man inte hanterar null fallet, då kommer raden

userName.trim().toLowerCase();

orsaka en NullPointerException, så för att undvika detta så låter man userName vara en tom sträng.

Okej, då är jag nog med på noterna. Tack

Svara
Close