Введение в Java

java java-8

1170 просмотра

3 ответа

33147 Репутация автора

Может ли кто-нибудь описать этот вид кода, чтобы понять закрытие Java.

public static <T> void sort(List<T> l, final {T, T=>Number} block) {

    Collections.sort(l, new Comparator<T>() {
        public int compare(T arg0, T arg1) {
            return block.invoke(arg0, arg1);
        }
    }
}
Автор: Subhrajyoti Majumder Источник Размещён: 26.05.2011 10:22

Ответы (3)


4 плюса

4050 Репутация автора

Как указывает @axtavt, Java 7 (к сожалению) не собирается закрывать. Тем не менее, Groovy делает, работает на JVM и очень хорошо интегрируется с другим кодом Java. Я прочитал это для получения дополнительной информации.

Автор: alpian Размещён: 26.05.2011 10:28

30 плюса

318343 Репутация автора

Решение

Важное примечание . Вопрос касался более раннего предложения . Это не был выбран синтаксис. См. Этот Q / A как «историческую ссылку».


Этот синтаксис описан в BGGA-предложении Гилада Брача, Нила Гафтера, Джеймса Гослинга и Питера фон дер Ахе.

Этот фрагмент кода можно описать следующим образом:

  1. В качестве второго аргумента берется функция, принимающая параметры (T, T)и возвращающая Number(и присваивающая ей параметр block)

  2. Затем он создает Comparator<T>из него. Это делается путем реализации compareметода, делегируя его на вызов block.

  3. Пропускает этот компаратор к Collections.sortметоду.


Здесь идет разбивка синтаксиса:

public static <T> void sort(List<T> l, final {T, T=>Number} block) {
                                             ^^^^^^^^^^^^^^^^^^^^

Аргумент называется , blockкоторый имеет тип «функция , которая принимает два Tи возвращает Number» .

    Collections.sort(l, new Comparator<T>() {
        public int compare(T arg0, T arg1) {
            ...
        }
    }
}

Обычный вызов Collections.sortс экземпляром анонимного подкласса в Comparatorкачестве второго аргумента ...

        ...
            return block.invoke(arg0, arg1);
        ...

... который возвращает число, вычисленное функцией, определяемой blockаргументом.


Полагаясь на классическую Java, ваш фрагмент будет соответствовать чему-то вроде

interface Block<T> {
    public int invoke(T arg1, T arg2);
}


class Test {
    public static <T> void sort(List<T> l, final Block<T> block) {
        Collections.sort(l, new Comparator<T>() {
            public int compare(T arg0, T arg1) {
                return block.invoke(arg0, arg1);
            }
        });
    }
}
Автор: aioobe Размещён: 26.05.2011 10:28

-3 плюса

1 Репутация автора

что такое программирование?

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

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

что такое языки программирования?

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

Существуют различные языки программирования, такие как Java, C, C ++, Python и т. Д.

что такое Java?

Java - это язык программирования, созданный Джеймсом Гослингом для Sun MicroSystem, а позже он является собственностью Oracle Corporation.

что такое Java-программирование?

  1. Java - это высокоуровневый язык программирования, который читается человеком.

  2. Java - это язык программирования, такой как C и C ++, но варьируется от синтаксиса, который может быть легко понятным и редактируемым.

  3. Java - это объектно-ориентированный язык программирования, который очень эффективно использует объектно-ориентированные концепции программирования, такие как абстракция, инкапсуляция, наследование и полиморфизм.

  4. Java в основном используется для создания веб-приложений, мобильных приложений и платформ.

почему нам нужен язык программирования Java?

существует много языков программирования, таких как C и C ++, но

почему java стал более известным? и почему нам нужна Java?

Основная причина - чисто независимая от платформы, что означает, что она может работать на любой платформе.

Языки программирования Java используются в различных приложениях, перечисленных ниже.

Настольные приложения Веб-приложения Корпоративные приложения Мобильные приложения Смарт-карты Встроенные системы Научные приложения Компьютерные игры и т ...

Некоторые устройства и приложения в основном работают на Java, несколько перечисленных ниже

Приложения Программное обеспечение Интернет Вещи Системы самолетов Банкоматы BlackBerry Smartphones Плееры Blu-ray Кабельные ящики Сотовые телефоны Компьютеры Кредитные карты КТ-сканеры Домашние системы безопасности Стояночные приборы PlayStation Консоли Принтеры Общественный транспорт Пропускает Роботы Маршрутизаторы Телевизоры Диагностические системы VoIP-телефоны ..etc

В статистике известно, что Java работает более чем на 3 миллиарда устройств.

Здесь мы понимаем, что все устройства не будут работать на одной платформе, очевидно, что разные устройства работают на разных платформах, которые мы точно не знаем.

Но Java работает во всех устройствах, Java может работать на разных платформах для удовлетворения требований устройства и его успеха.

Дополнительные Нажмите здесь

Спасибо и приветствую CSIndian www.csindian.com

Автор: Csindian Apj Размещён: 12.11.2018 11:01
Вопросы из категории :
32x32