2016-04-22 2 views
0

Это мое подтверждение для идентификационного номера пользователя, при тестировании я ввел недопустимую строку с длиной менее 10 и устанавливает ввод и не выполняет инструкцию else.Пользовательский ввод валидации java-классов

Исходный код:

private String phoneNum; 

public personalInfo(String phNum) { 
    setPhoneNum(phNum); 
} 

public String getPhoneNum() { 
    return phoneNum; 
} 

public void setPhoneNum(String phNum) { 
    if (phoneNum.startsWith("05")&&(phoneNum.length()==10)){ 
     phoneNum = phNum; 
    } 
    else throw new IllegalArgumentException ("Invalid Phone Number!"); 
} 
+0

Как вы звоните по этому коду? Отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve). –

ответ

1

ваш метод выглядит следующим образом ...

public void setPhoneNum(String phNum) { 
    if (phoneNum.startsWith("05")&&(phoneNum.length()==10)){ 
     phoneNum = phNum; 
    } 

и там вы не проверки параметра, но переменная phoneNum ...

вместо этого:

public void setPhoneNum(String phNum) { 
    if (phNum.startsWith("05")&&(phNum.length()==10)){ 
     phoneNum = phNum; 
    } 
0

Вы должны подтвердить ценность, которую вы получаете (phNum), и установить ее на переменную-член phoneNum.

if (phNum.startsWith("05")&&(phNum.length()==10)){ 
    phoneNum = phNum; 
} 
Смежные вопросы