여러개의 EditText의 String 값을 깔끔하게 Null & Empty 검사하는 방법
안녕하세요.
개발을 하다 보면 , 화면의 입력 필드들이 여러 개가 존재하는 경우가 생깁니다.
예를 들면
이름
성별
나이
취미
지역 등..
이때 우리는 검사해야 할 것들이 있습니다.
입력 필드에 입력된 값들 중 Null인 값이 있는가?
입력필드에 입력된 값들 중 "" 즉 빈 값이 있는가?
입력 필드의 InputType을 지켰는가 이것은.. 선택의 여지가 있으므로, 일단은 제외토록 하겠습니다.
이 입력필드 들의 값의 유효성을 검사하기 위해 보편적으로 생각할 수 있는 방법은 아래와 같겠죠?
public boolean testMethod() {
String name, age, gender, hobby, region;
if (name != null) {
if (name != "") // 또는if (!name.isEmpty())
}
}
나쁘지 않습니다.
어쨌든 검사하면 되죠.
그렇지만 위 선언된 변수들의 모든 값을 검사하려면 대체 if문을 몇 번을 타고 들어가야 하며,
또 중간에 아휴.. 이프 이프 이프 이프 이프 하다가 헷갈린단 말이죠..
이를 위해 우리는 Util의 성격을 가진 메서드를 공통으로 만들 수 있습니다.
이때 필요한 키워드는 Static과 variable argument(variable argument는 가변 인자입니다.)
Static은.. 여러 가지 쓰임새가 있지만, 이때 쓰기 위함은 객체의 선언 없이, 접근하기 위한 용도로 쓰이고
가변 인자는 한 번에 여러 가지 변수들은 전달하기 위해 쓰입니다. Asynctask를 써보신 분이라면 많이들 보셨을 거예요. params....그 문법
자~ 이제 잔소리를 걷어내고 코드로 살펴봅시다.
먼저 단일한 변수를 , 유효한지 유효하지 않은지 검사하기 위한 코드는 아래와 같습니다.
if(name!=null && !name.isEmpty()){return true;} else{return false;}
이후 가변 파라미터를 더하면 아래와 같이 변하게 됩니다.
public boolean testVariableParam(String... params) {
for (String param : params) {
if (param == null || param.isEmpty()) {
return false;
}
}
return true;
}
어떤가요, 기존의 if를 여러 번 타고 들어가는 것보다 훨씬 깔끔해 보이나요?
자 호출하는 부분과 함께 살펴봅시다.
public boolean testMethod() {
String name = null, age =null , region =null, hobby =null ;
testVariableParam(name,age,region,hobby);
}
public boolean testVariableParam(String... params) {
for (String param : params) {
if (param == null || param.isEmpty()) {
return false;
}
}
return true;
}
이렇게 유용하게 사용할 수 있습니다.
안드로이드 초보 개발자를 위해 아래와 같은 카카오 오픈톡을 운영 중입니다.