Я играю с Java NIO.2 API из JDK 7.
В частности, я хочу вызвать метод: Пути # get (сначала строка, строка ... подробнее)
Это статический метод, который принимает по крайней мере одну строку, и возвращает соответствующий ему объект Path. Есть перегруженная форма: Paths # get (URI uri)
Однако я не могу вызвать метод top из Clojure. Ближайшее, что я могу получить, это:
(Paths/get ^String dir-fq (object-array 0))
, который не работает с:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
, как и следовало ожидать. В конце концов, мы передаем Object [] тому, что ожидает String [].
Я попытался удалить форму (объект-массив), но это просто заставило Clojure попытаться вызвать метод get (URI) - как с подсказкой типа, так и без нее.
Передача nil в качестве второго аргумента в Пути # get (String, String ...) вызывают вызов правильного метода, но затем Java 7 не работает с NPE.
Кажется, я не могу найти способ в Clojure выразить тип String [] - Я предполагаю, что мне нужно либо сделать это, либо дать подсказку системе диспетчеризации.
Есть идеи?