Полагаю, вы хотите сравнить отформатированные значения.В противном случае, как говорит @Mohamed, сами строки можно сравнивать.Это сравнит отформатированные значения:
interface TextFormatter {
public TextFormatter clone(String s);
public String format();
}
class SnakeCaseFormatter implements TextFormatter, Comparable<TextFormatter> {
...
@Override
public int compareTo(TextFormatter other) {
return format().compareTo(other.format());
}
}
Вы можете поместить этот метод в свой интерфейс с более поздними версиями Java:
interface TextFormatter extends Comparable<TextFormatter> {
TextFormatter clone(String s);
String format();
@Override
default int compareTo(@NotNull TextFormatter other) {
return format().compareTo(other.format());
}
}
Кстати, вам не нужно 'public 'определители в вашем интерфейсе.Сигнатуры методов в интерфейсе должны быть открытыми, так что это избыточно.
Может быть, вы хотите сравнить необработанные строки для удобства.Это не сумасшествие.Я не могу написать этот метод для вас, потому что я не знаю, как вы храните свои строки.Вы можете заменить их значения на «format ()» в предоставленном мною коде, но вам нужен геттер в интерфейсе, чтобы он оставался общим для механизма хранения или деталей каждого класса.