Integer is a "boxed" integer in Java.  It is a full Java Object.  The 
java.awt.Color constructor you are calling takes 4 primitive int parameters, 
not Integer.  Try this:

(set! *warn-on-reflection* true)
(def a 1)
(java.awt.Color. (int 0) (int 0) (int (or a 0)) (int 0))


I'm not so sure what you are asking for with the into-array part of your 
questions.  The last into-array expression returns a Java array of 
java.awt.Color objects.  If you are trying to pass that to some other Java 
method and you are seeing reflection, and adding a type hint of 
^"[Ljava.awt.Color;" doesn't work somewhere near there to avoid the reflection, 
it would be good to show a code snippet of what you are trying and getting 
reflection with.

Andy


On Feb 18, 2013, at 10:29 AM, AtKaaZ wrote:

> For or
> => (set! *warn-on-reflection* true)
>    (def ^Integer a 1)
>    (java.awt.Color. 0 0 ^Integer (or ^Integer a 0) 0)
>    *clojure-version*
> true
> #'cgws.notcore/a
> Reflection warning, NO_SOURCE_PATH:3:1 - call to java.awt.Color ctor can't be 
> resolved.
> #<Color java.awt.Color[r=0,g=0,b=1]>
> {:major 1, :minor 5, :incremental 0, :qualifier "RC16"}
> => (java.awt.Color. 0 0 ^Integer (or 0 ^Integer a) 0)
> Reflection warning, NO_SOURCE_PATH:2:1 - call to java.awt.Color ctor can't be 
> resolved.
> #<Color java.awt.Color[r=0,g=0,b=0]>
> => (java.awt.Color. 0 0 a 0)
> #<Color java.awt.Color[r=0,g=0,b=1]>
> 
> 
> For into-array  I don't yet have a sample but what is wanted is this:
> ^{:tag "[Ljava.awt.Color;"} (into-array java.awt.Color (list (java.awt.Color. 
> 0 0 0 0)))
> but what we get is the returned value without the typehint when doing just 
> this:
> (into-array java.awt.Color (list (java.awt.Color. 0 0 0 0)))
> 
> 
> I'm not sure which jira issues apply for these, likely this is already 
> reported but more generically? 

-- 
-- 
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/groups/opt_out.


Reply via email to