Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Java to C#

22.10.14 23:04
Re: Java to C#
 
MrSanders старожил
в ответ AlexNek 22.10.14 22:38, Последний раз изменено 22.10.14 23:05 (MrSanders)
А тут и не засунута в интерфейс имплементация. Тут просто очередной говнокодер впихнул в интерфейс "внутренний" класс и кучу анонимных подклассов этого внутреннего класса (ну и заодно на соглашения об именах наплевал)
по-человечески здесь один интерфейс с 6-ю константами и двумя методами:
public interface RelationalOperator {
public final static RelationalOperator EQUALS=...
public final static RelationalOperator IDENTITY=...
...
public static RelationalOperator[] OPERATORS= {
EQUALS,IDENTITY,GREATER,SMALLER,LIKE
};
String name();
void apply(Constraint query);
}
Абстрактный класс, реализующий метод name() (и оставляющий метод apply(Constraint) абстрактным):
public static abstract class RelationOperatorImpl implements RelationalOperator {
private String name;
private RelationOperatorImpl(String name) {
this.name = name;
}

public String name() {
return name;
}
}
И при определении всех констант еще и создается для каждой константы анонимный внутренний класс (компайлер его потом обзовет вроде RelationalOperator$1) - подкласс RelationalOperator.RelationOperatorImpl
Фсё.
А отличается обращение к методу и к полю в яве - по скобочкам. Напишешь name() - значит метод, напишешь name, значит поле. Делать имена методов одинаковыми с имена полей в яве не приветствуется.
 

Перейти на