Описание тега java-interop

2 ответа

Добавить конструктор в deftype созданный класс

Для целей взаимодействия с Java мне нужен класс с нулевым конструктором, который выполняет инициализацию. У объектов этого класса должно быть что-то, похожее на изменяемые поля Java (а именно, объект представляет бэкэнд игры и должен сохранять игров…
29 июн '11 в 02:30
1 ответ

Возникли проблемы с вызовом getCodeBase в Clojure

Я пытаюсь написать функцию для воспроизведения звукового файла один раз, используя найденные ресурсы. Код выглядит следующим образом: (defn play [файл] (пусть файл [songp (URL. (.getCodeBase))) песня (.newAudioClip songp)] (. Воспроизведение песни))…
27 июл '09 в 20:45
1 ответ

Смешивание definterface и defprotocol

Я пытаюсь реализовать интерфейс, представляющий арифметические выражения. Интерфейс будет использоваться java-стороной, но вся логика на clojure. Наличие: (defprotocol ExtendsExpression (toTree [this])) (extend-type String ExtendsExpression (toTree …
1 ответ

clojure - конфликт имен в определенной записи?

У меня плохо работает код; когда я называю запись MethodInfo, она больше не переопределяет метод .toString правильно. (defrecord MethodInfo [^clojure.lang.ISeq x ^clojure.lang.ISeq y] java.lang.Object (toString [x] (str (:x x)))) Запуск простого тес…
18 июл '11 в 00:51
1 ответ

Как я могу определить тип clojure, который реализует интерфейс сервлета?

Я пытаюсь использовать deftype (из ответвления ветки clojure 1.2), чтобы создать класс Java, который реализует интерфейс сервлета Java. Я ожидаю, что код ниже для компиляции (хотя это не очень полезно). (ns foo [:import [javax.servlet Servlet Servle…
18 май '10 в 01:22
2 ответа

Clojure - конвертировать список в массив Java

Есть ли какой-то идиоматический способ преобразования списка Clojure в массив Java, кроме как сначала преобразовать его в векторный и использовать в массив (значит, что-то кроме (into-array (vec my-list)), как я не хочу дополнительных накладных расх…
20 май '13 в 10:15
2 ответа

Kotlin: оператор двойного двоеточия (отражения)

Поэтому я работал с VertX Web, пытаясь заставить его работать с Kotlin. Там есть роутер, и вы должны сказать что-то вроде val vertx = Vertx.vertx() val server = vertx.createHttpServer() val router = Router.router(vertx) server.requestHandler(router:…
25 июн '15 в 05:14
3 ответа

Преобразование коллекций Java в структуры данных Clojure

Я создаю интерфейс Clojure для Java API с методом, который возвращает java.util.LinkedHashSet. Во-первых, является ли идиоматический способ Clojure обрабатывать это для преобразования LinkedHashSet в структуру данных clojure? Во-вторых, каков наилуч…
14 фев '12 в 10:42
1 ответ

Как переопределить свойства классов Java в Kotlin?

Где-то в коде Java есть класс ViewHolder: public static abstract class ViewHolder { public final View itemView; public ViewHolder(View itemView) { this.itemView = itemView; } .... } Так что в Kotlin экземпляры этого класса содержат свойство только д…
26 фев '16 в 14:18
1 ответ

Использование функции Kotlin в качестве Java SAM типа

При вызове методов из Java API, которые ожидают аргументы типа SAM (единственный абстрактный метод), существует ли согласованный способ привести литерал функции к правильному типу? Я обнаружил, что иногда функции Kotlin работают просто отлично, а др…
04 авг '14 в 13:29
3 ответа

Clojure добавление границы в JPanel и вообще доступ к java-методам в объектах

Исходя из LISP, у меня самые сложные моменты при доступе к Java-объектам. Я пытаюсь поставить титулованную границу на JPanel. Вот мой код и исключение: user=> (import '(javax.swing JComponent JPanel BorderFactory)) javax.swing.BorderFactory user=…
2 ответа

Реализация интерфейсов и вызов констант Java в Clojure (новичок)

Я пытаюсь написать оболочку для API Google AdWords в Clojure, но борюсь с константами и интерфейсами. Код Java выглядит следующим образом: CampaignServiceInterface campaignService = user.getService(AdWordsService.V201109.CAMPAIGN_SERVICE); Обычно вы…
25 май '12 в 07:04
3 ответа

Как вызвать метод Java из perl6

use java::util::zip::CRC32:from<java>; my $crc = CRC32.new(); for 'Hello, Java'.encode('utf-8') { $crc.'method/update/(B)V'($_); } say $crc.getValue(); к сожалению, это не работает Method 'method/update/(B)V' not found for invocant of class 'j…
26 ноя '14 в 18:23
2 ответа

Можно ли использовать JNBridge под Linux?

Я должен потреблять некоторые C# DLL под Linux хост через Java. Переписать код в настоящее время не вариант, и мы не можем представить dll как службу, потому что этот сервер Linux будет существовать изолированно. Можно ли сгенерировать мои JARS прок…
28 июн '11 в 22:50
2 ответа

Clojure's: класс gen и двойные массивы

Я пытаюсь:gen-класс fn, который принимает двумерный массив значений Double в качестве входных данных. Я уже видел сообщение и решение здесь, относящиеся к аналогичной теме, но я все еще не могу найти рабочее решение. (ns gui.heatmap (:gen-class :nam…
23 июл '10 в 13:44
1 ответ

Vert.x Kotlin Type Несоответствие типов Требуется обработчик<AsyncResult <Unit >> (Обработчик<AsyncResult <Unit >>) -> Unit

Ниже приведен метод, переписанный в Kotlin из Java: fun publishMessageSource( name: String, address: String, completionHandler: Handler&lt;AsyncResult&lt;Unit&gt;&gt; ) { val record = MessageSource.createRecord(name, address) publish(record, complet…
26 июн '17 в 19:40
3 ответа

Перегрузка по методу Котлина

Следующая декларация является законной в Котлине. fun foo(): String = "foo_1" fun &lt;T&gt; foo(): T = "foo_2" as T В качестве байт-кода мы получаем: public final static foo()Ljava/lang/String; // signature &lt;T:Ljava/lang/Object;&gt;()TT; // decla…
25 авг '18 в 19:31
1 ответ

Сохранение прав доступа к файлам при распаковке в clojure

Я хочу распаковать файлы из zip-пакета, в котором могут быть текстовые и исполняемые файлы. Я выяснил способ использования взаимодействия Java для распаковки содержимого файла в заданном месте. Тем не менее, после того, как все будет разархивировано…
29 окт '15 в 05:53
3 ответа

Преобразование статической библиотеки Windows в DLL

У меня библиотека содержит кучу статических *lib файлы, я хочу получить к ним доступ с JNA (библиотека Java, которая позволяет динамически вызывать `dll'из кода JAVA), так есть ли способ магическим образом изменить статическую lib на dll? Код был ск…
10 май '09 в 11:50
1 ответ

Вызов Java из Scala: защищенный конструктор

Это компилируется без ошибок на Scala 2.8.0 final: import javax.swing.tree.TreePath object A extends Application { val path1 = new TreePath() val path2 = new TreePath(path1, "foo") } Однако по исполнению я получаю: java.lang.IllegalAccessError: trie…
09 сен '10 в 16:49