Передача функции как параметра в JavaScript

Придется перенести небольшой фрагмент кода с JavaScript на JAVA:

var N = 3;
var w = 8, h = 8;

var matrix = [ 

               [1, 0, 0, 0, 0, 0, 0, 0],
               [1, 1, 0, 0, 0, 0, 0, 0],
               [1, 1, 1, 0, 0, 0, 0, 0],
               [1, 1, 1, 1, 0, 0, 0, 0],
               [1, 1, 1, 1, 1, 0, 0, 0],
               [1, 1, 1, 1, 1, 1, 0, 0],
               [1, 1, 1, 1, 1, 1, 1, 0],
               [1, 1, 1, 1, 1, 1, 1, 1]

             ];

//[1, 1, 1, 1, 1, 1, 0, 1, 1]
console.info(complexFunction(2, 1));

//first function
function simpleFunction(f_) {

    var out = new Array(N * N);

    for (var y = 0; y < N; y++) {
        for (var x = 0; x < N; x++) {

        out[x + y * N] = f_(x, y);

        }
    }

    return out;

};

//second function     
function complexFunction(x_, y_) {

    return simpleFunction(function (dx, dy) { return matrix[(x + dx) % w][(y + dy) % h]; });

};

Безуспешно экспериментировали с Callable. В идеале перенесенный результат должен иметь ту же структуру, что и исходный код JavaScript.

Вам нужно опубликовать свой Java-код и объяснить, что вы пытаетесь сделать и где у вас возникают проблемы. Код Javascript на самом деле не важен для вопроса «Как передать функцию в качестве ссылки в Java»

Reinstate Monica Cellio 21.08.2018 10:28

Если вы используете Java 8 или выше, вы можете использовать функциональные интерфейсы.

KarelG 21.08.2018 10:29

Что за вопрос?

Liam 21.08.2018 10:32

Не ждите, что мы сделаем этот перевод за вас. Начните себя, а затем, когда вы застряли, попросите помочь с этим.

GhostCat 21.08.2018 10:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
6
4
67
1

Ответы 1

К сожалению, мне приходится использовать Java 7, в которой нет лямбд, так что пришлось все сделать как можно проще:

Integer[] complexFunction(int dx_, int dy_){

     Integer[] out = new Integer[N * N];

     for (Integer y = 0; y < N; y++) {
        for (Integer x = 0; x < N; x++) {

          out[x + y * N] = matrix[(x + dx_) % w][(y + dy_) % h];

        }
     }
     return out; 

}

Этот ответ никому, кроме вас, не нужен. Этот вопрос следует просто удалить.

Liam 21.08.2018 11:59

Другие вопросы по теме