Size: a a a

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

2021 April 14

v

vveare138 in Clojure — русскоговорящее сообщество
это было бы слишком просто) рефлексия этого объекта возвращает список методов в котором нет нужного мне метода
источник

DL

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

ID

Iv@n Dereviankin in Clojure — русскоговорящее сообщество
а как такое может быть?
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
А почему тогда Ява работает? И в рефлексии ты декларед методы только берёшь или доступные?
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Тип и версию либы фактическую и на которую дока открыта сверил? У меня пару раз было из-за разных версий либы и доки
источник

v

vveare138 in Clojure — русскоговорящее сообщество
в deps.edn указано то, что нужно
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
ну тут есть несколько вариантов, ни один из них не смертельно необходимый, though
- аргумент передаётся структурой, переданной снаружи, и нет смысла деструктурить заранее
- когда все аргументы из структуры могу быть опциональными
- пресловутая читабельность, когда аргументов много
источник

v

vveare138 in Clojure — русскоговорящее сообщество
щас напишу сюда что я делаю
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
мне при наличии больше 3-4х позиционных аргументов уже неуютно
источник

v

vveare138 in Clojure — русскоговорящее сообщество
беру в рефлексии declaring-class
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Вот первый аргумент – это прям контр читаемость. Человек, который первый раз смотрит на кодбазу без вычитки всего даже не сможет понять как дернуть функцию
источник

DL

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

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Ну он, значит, в родительском классе.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
но для меня это всё ещё лучше, чем делать функции на 100500 строк, с кучей вложенных контекстов/скоупов итп
источник

v

vveare138 in Clojure — русскоговорящее сообщество
deps.edn:
org.apache.santuario/xmlsec {:mvn/version "2.2.1"}

нужный метод в документации:
https://santuario.apache.org/Java/api/org/apache/xml/security/encryption/EncryptedType.html#setKeyInfo-org.apache.xml.security.keys.KeyInfo-

принт инстанса в репл:
(clojure.pprint/pprint (.getEncryptedData xml-cipher)) => org.apache.xml.security.encryption.XMLCipher$Factory$EncryptedDataImpl
источник

v

vveare138 in Clojure — русскоговорящее сообщество
а вот рефлексия этого объекта:
{:bases
#{org.apache.xml.security.encryption.XMLCipher$Factory$EncryptedTypeImpl
  org.apache.xml.security.encryption.EncryptedData},
:flags #{:private},
:members
#{{:name this$1,
   :type org.apache.xml.security.encryption.XMLCipher$Factory,
   :declaring-class
   org.apache.xml.security.encryption.XMLCipher$Factory$EncryptedDataImpl,
   :flags #{:final :synthetic}}
  {:name
   org.apache.xml.security.encryption.XMLCipher$Factory$EncryptedDataImpl,
   :declaring-class
   org.apache.xml.security.encryption.XMLCipher$Factory$EncryptedDataImpl,
   :parameter-types
   [org.apache.xml.security.encryption.XMLCipher$Factory
    org.apache.xml.security.encryption.CipherData],
   :exception-types [],
   :flags #{:public}}
  {:name toElement,
   :return-type org.w3c.dom.Element,
   :declaring-class
   org.apache.xml.security.encryption.XMLCipher$Factory$EncryptedDataImpl,
   :parameter-types [],
   :exception-types [],
   :flags #{}}}}
источник

v

vveare138 in Clojure — русскоговорящее сообщество
мм, методы родительского класса нужно как-то особенно вызывать в clj?
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Вызывать нет. Но если хочешь в рефлексии его увидеть, то да.
источник

v

vveare138 in Clojure — русскоговорящее сообщество
ну ка, сейчас попробую
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
boys and girls, а чем в clojurescript для дат-времени попользоваться? например календарик сделать?
источник