Size: a a a

Clojure — русскоговорящее сообщество

2021 April 01

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Timur Latypoff
(.unwrap obj ^Class ClickHouseStatement)

а так?
нет, и ^class тоже
источник

TL

Timur Latypoff in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
нет, и ^class тоже
А погоди, ClickHouseStatement — это класс?
Тогда может быть просто (.unwrap ^Class obj) ?
источник

TL

Timur Latypoff in Clojure — русскоговорящее сообщество
Вроде как в джаве на этапе компиляции дженерики удаляются, если я правильно понимаю
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Timur Latypoff
Вроде как в джаве на этапе компиляции дженерики удаляются, если я правильно понимаю
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Wrapper.html#unwrap(java.lang.Class)

дженерики только в java, но не в jvm, да

(.unwrap statement ClickHouseStatement)
источник

TL

Timur Latypoff in Clojure — русскоговорящее сообщество
А, всё, понял. Выше я ошибался, да)
Недавно тоже воевал с кодом, инфицированным джава-дженериками, плюнул в итоге.
источник

TL

Timur Latypoff in Clojure — русскоговорящее сообщество
Интересно, вдруг кто знает, как правильно.
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
мне нужно что-то вроде (.unwrap statement ^java.lang.Class ClickHouseStatement) но это не работает
источник

TL

Timur Latypoff in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
мне нужно что-то вроде (.unwrap statement ^java.lang.Class ClickHouseStatement) но это не работает
может, нужно statement хинтнуть в ^java.sql.Wrapper?
Типа он не понимает, что это метод интерфейса
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
оно там в Statement приведено выше
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
а если декомпильнуть?
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество

       (-> conn
           ^Statement (.createStatement)
           ^ClickHouseStatement (.unwrap ClickHouseStatement)
           ^Writer (.write)

оно не на агрумент ругалось, а на возращаемое значение =)


вот в это компилится
((ClickHouseStatement)((Connection)((metric_data$handler$fn__21760)super).conn).createStatement().<ClickHouseStatement>unwrap((Class<ClickHouseStatement>)const__0)).write()
источник

SS

Sergey Sobko in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
о, а я думал flower заброшен!
Ну я сейчас в другой компании работаю, но слишком ответственный, чтобы его забрасывать, однако сейчас он действительно без активного мейнтейнера
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Sobko
Ну я сейчас в другой компании работаю, но слишком ответственный, чтобы его забрасывать, однако сейчас он действительно без активного мейнтейнера
да, я заметил :), в итоге пришлось свой велосипед педалить
источник

SS

Sergey Sobko in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
да, я заметил :), в итоге пришлось свой велосипед педалить
Ну его в любом случае на куски можно растащить как демо/референс, если кому-то нужно: MIT, микроядро со слоеной архитектурой плагинов, протоколы и монорепозитарий в связке с lein-sub, интеграция с Emacs через clomacs
источник

SS

Sergey Sobko in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
да, я заметил :), в итоге пришлось свой велосипед педалить
Я там поправил зависимости, чтобы оно собирались и работало какое-то время назад
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
привет
как передать в <T> T unwrap​(Class<T> iface)  интерфейс без reflection warning?

`(.unwrap obj ClickHouseStatement)` с варнингом
<T> T unwrap (Class<T> iface) из какого пакета?
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Sergey Trofimov
<T> T unwrap (Class<T> iface) из какого пакета?
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
зацените как прикольно получается - https://github.com/DotFox/matchete/blob/main/test/dotfox/matchete/seqex_test.cljc
я пилю паттерн матчер с возможностью парсить последовательности
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Kirill Chernyshov
зацените как прикольно получается - https://github.com/DotFox/matchete/blob/main/test/dotfox/matchete/seqex_test.cljc
я пилю паттерн матчер с возможностью парсить последовательности
Так ведь было уже что-то такое, не?
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
мне не попадалось, у меня основная фича в ассинхронном интерфейсе и недетерминистичном порядке разруливания штук типа [:alt int? string?]
источник