Fork me on GitHub
#java
<
2019-07-22
>
jjttjj21:07:04

Is there a good way to write out a (is it called "parameterized"?) java type like [Lmy.java.Thing; so that it can be read later? Is the only way to do it to write it as a string then read it in a macro that turns it into a symbol first?

Alex Miller (Clojure team)21:07:16

that type is not a parameterized java type, it's an array of Thing

Alex Miller (Clojure team)21:07:31

user=> (class (make-array String 10))
[Ljava.lang.String;

Alex Miller (Clojure team)21:07:03

it may help to start with what you're actually trying to accomplish

jjttjj21:07:55

Touché, thanks!

Alex Miller (Clojure team)21:07:17

wasn't try to be snarky, was actually asking :)

Alex Miller (Clojure team)21:07:50

sorry if that didn't come across well

jjttjj21:07:09

I have a big data structure which is the result of analyzing some java classes, for the purpose of wrapping a java api "programatically". It needs the type info of some things to properly wrap them. I have things working for the most part when generate all the data via reflection at the start of my program but I started looking into spitting out the data at edn so that I can just load that instead. (I was hung up a little earlier on an actual issue working with parameterized types so I think that was in my head when I saw these arrays printed)

jjttjj21:07:37

Nah it's all good 🙂

jjttjj21:07:11

so i think I can actually just handle the arrays in the same I do the parameterized type, but using getComponentType instead of .getParameterizedType and then only writing the component type and an indicator that it's to be contained in an array