Именование Расширений Набора для ясности

Да ... к сожалению, имена параметров в методе onItemClick, который вы должны реализовать, не являются настолько информативными, но вот пример с именами того, чем они являются:

autoCompleteTextView.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView parent, View view, int position, long rowId) {
        String selection = (String)parent.getItemAtPosition(position);
        //TODO Do something with the selected text
    }
});
  • parent AdapterView, где произошел щелчок.
  • Представление в представлении AdapterView, по которому щелкнули (это будет представление, обеспечиваемое адаптером).
  • Положение Положение представления в адаптере.
  • id Идентификатор строки идентификатора строки. элемент, на который была нажата кнопка.

Для получения дополнительной информации см .: http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html

5
задан Tetsujin no Oni 27 May 2009 в 18:43
поделиться

6 ответов

Я бы назвал их картой и фильтром . Уменьшение имеет для меня немного другое значение, а преобразование слишком расплывчато. Что касается имени класса, фильтры могут быть не лучшими, но у меня нет лучшей рекомендации.

Я знаю, что вы не просили об этом конкретно, но некоторые сигнатуры в общих методах можно улучшить:

 static public <T> List<T> filter(List<T> source, Predicate<? super T> filter);
 static public <Y,T> List<Y> transform(List<T> source, Mutator<Y,? super T> filter);
 static public <T> boolean exists(List<T> source, Predicate<? super T> filter);
 static public <T> T findFirst(List<T> source, Predicate<? super T> filter);
 static public <T> boolean trueForAll(List<T> source, Predicate<? super T> filter);
1
ответ дан 14 December 2019 в 19:23
поделиться

в аналогичной библиотеке, которую я использовал:

  • Спецификация вместо Предикат : aSpecification.isSatisfiedBy (anObject);
  • Mapper вместо Mutator
  • map is collect для smalltalkers ( преобразовать в в вашем случае)
  • fold is inject for smalltalkers
  • filter is select for smalltalkers
1
ответ дан 14 December 2019 в 19:23
поделиться

Это выглядит очень красиво; Я думаю, вы здесь определенно на правильном пути. Да, я думаю, что Mutator - хорошее имя; transform лучше, потому что его чаще читают как глагол, а map имеет коннотацию «существительное», что может сбивать с толку; и единственная основная функция на основе наборов, которая, как я мог подумать, может вам понадобиться, - это функция переупорядочения.

1
ответ дан 14 December 2019 в 19:23
поделиться

Это не совсем то, что вы спрашивали, но это в духе вашего вопроса. На мой взгляд, лучше сказать:

List<String> shortWords = filtered(allWords, short);

, чем

List<String> shortWords = filter(allWords, short);

, я бы предпочел преобразование и фильтр .

0
ответ дан 14 December 2019 в 19:23
поделиться

Казалось бы, Transform должен быть Mutate (или, альтернативно, Mutator должен быть Transformer) для единообразия. Это кажется довольно ясным относительно намерения:

static <Y,T> public List<Y> mutate (List<T> originalForm, Mutator<Y,T> mutator);

Также немного более подробным (но более последовательным и стандартным) является спецификация:

static public boolean isTrueForAll(List<T> source, Predicate<T> filter);

или

static public boolean assertTrueForAll(List<T> source, Predicate<T> filter);
0
ответ дан 14 December 2019 в 19:23
поделиться

Существуют ли какие-либо важные основанные на наборах функции, которые я забыл включить в класс библиотеки?

Для функций сбора данных высшего порядка я использую подход, описанный Адрианом Куном в его статье « Pimp My Foreach ».

Некоторые из них у вас уже есть, но думал, что все равно выброшу их туда:

  • AllSatisfy
  • AnySatisfy
  • Мощность
  • Собрать
  • Подсчитать
  • CutPieces
  • Обнаружить
  • Fold
  • GroupedBy
  • IndexOf
  • Inject
  • Reject
  • Select
2
ответ дан 14 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

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