Я бы порекомендовал ввести здесь немного более высокий уровень абстракции и немного больше OO-подхода.
Предположим, мы создаем объект, представляющий нашего пользователя IRC, и назовем его IRCUser
:
class IRCUser implements Comparable<IRCUser>
{
private IRCRole ircRole;
private String nickName; //full nickname
public int compareTo(IRCUser otherUser)
{
//Implementation
}
}
, а затем создайте перечисление, описывающее роль, которую пользователь может получить за определенный канал IRC, например:
public enum IRCRole
{
STANDARD("", 2), PRIVILEDGED("+",1) , OP("@",0)
IRCRole(String nickNamePrefix, int priority)
{
this.nickNamePrefix = nickNamePrefix;
this.priority = priority;
}
private String nickNamePrefix;
private int priority;
}
Теперь можно сравнить метод CompareTo нашего IRCUser, сравнив роль this
пользователя (точнее, роль priority
) с ролью пользователя, переданного в качестве аргумента, и после этого выполните простое сравнение строк. , Как насчет этого?