Hey Gary, thanks for the help
I'm not sure if a type hint would work in this case, as the attribute 
expect a class literal, and not a variable of that specific class. Thanks 
for the example though, I didn't know that was a valid type hint.
About what I'm trying to do, I'm using a gitlab api gem 
(https://github.com/timols/java-gitlab-api), and I need to do some java 
interop with it.
I'm trying to get a list of projects filtered by name, but the call java 
does doesn't build the search attribute, so I just get all projects, not 
filtered by name.
I'm able to get on java by using something like 
`connection.retrieve().getAll(buildUrl(project), GitlabProject[].class);`. 
The getAll expects a string, and a class literal.
If the return from gitlab wasn't an array, I could just use GitlabProject 
on clojure, and that would give me a result. As it's an array, I get an 
error showing it can't build a GitlabProject out of ARRAY_START.

My solution to make that call was 
(def get-project                                                            
                                   
    (memoize                                                                
      
      (fn [project]                                                        
       
            (-> connection                                                  
                                     
                .retrieve                                                  
                                      
                (.getAll (build-url project) (array-class-for 
GitlabProject)))))) 
                                                                            
                                     
(defn array-class-for [class-name]                                          
                                   
  (class (make-array class-name 1)))



On Monday, October 9, 2017 at 9:20:37 AM UTC-7, Gary Verhaegen wrote:
>
> You can generally use ^"[fully.qualified.ClassName" as the type hint, if 
> that's what you're trying to do. I'm not quite sure of the benefits of 
> typing an array when it's not a primitive one, though.
>
> What are you trying to accomplish, if we zoom back a little bit? Maybe 
> there's a better way to do whatever you're trying to do.
>
> On 9 Oct 2017, at 16:36, pericles macedo <pericle...@gmail.com 
> <javascript:>> wrote:
>
> Hey Guys,
> I wanted to know if there is a better way to get to the same result as 
> `GitlabProject[].class`
> after some digging around, I got to this array of class definition by 
> doing something like `(class (make-array GitlabProject 1))`. But I don't 
> know if there is a better way to get to this same result. 
> In Java, this array of class is sent as an attribute that is used to build 
> the array of objects that is returned. like: `retrieve().getAll(tailUrl, 
> GitlabProject[].class);`
>
>
> Thanks for your time,
> Pericles Dantas
>
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com <javascript:>
> Note that posts from new members are moderated - please be patient with 
> your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com <javascript:>
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+u...@googlegroups.com <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to