Лучший способ перегрузить / переопределить isEmpty () для атрибута универсального типа - PullRequest
0 голосов
/ 10 октября 2018

Я хочу проверить, является ли атрибут "myfield" пустым или нет.

Сначала я попробовал следующий сегмент кода.Но это всегда вызывает метод типа объекта.и он вернул неправильный ответ для объектов типа списка (Коллекции)

public class Validator{

private T myField;
....
...

public boolean isEmptyCheck(){
    return isEmpty(myField);
}

private boolean isEmpty(Collection<?> coll){
    return coll.isEmpty();
}

private boolean isEmpty(Object obj){
    return obj.toString().isEmpty();
    }
}

Затем я попробовал следующий сегмент кода, используя экземпляр метода.

public class Validator{

private T myField;
.....
....

public boolean isEmptyCheck(){

    if (myField instance of Collection<?>){
        retrun (Collection)myField.isEmpty();
    }
    else
        return myField.toString().isEmpty();
    }

}

Работает правильно.Но, как я знаю, экземпляр метода не является хорошей практикой для базовых проектов ООП.Я хочу знать, есть ли другое лучшее решение для этого сценария?Если нет, что я могу сделать, чтобы улучшить это решение?

...