Как использовать Comparable CompareTo для строк в Java

Подобный код будет (и должен) не компилироваться. Если вы хотите переопределить это поведение, вы можете создать неявное преобразование в логическое значение. Примерно так:

public class Foo {
    public static implicit operator bool(Foo me) {
        if (me == null) {
            return false;
        }

        return true; // maybe add more logic before saying True
    }
}

Я бы назвал это плохой практикой, потому что для программиста, не знакомого с вашим проектом, не сразу понятно, какая логика обеспечивает логическое преобразование. Более идиоматический способ сделать это - явно рассказать читателю, что делает ваш код, как это делает встроенный класс String, с помощью статической вспомогательной функции:

if (String.IsNullOrEmpty(str){
    // ...
}

Код пишется только один раз, и читаю часто; оптимизировать для удобства чтения.

22
задан Jack 20 September 2010 в 04:59
поделиться

2 ответа

Уверен, твой код можно написать так:

public int compareTo(Emp other)
{
    return this.getName().compareTo(other.getName());
}
7
ответ дан 29 November 2019 в 03:47
поделиться

Вам не нужно разыгрывать i в Emp, это уже Emp:

public int compareTo(Emp i) {
    return getName().compareTo(i.getName());
}
3
ответ дан 29 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: