you guys realize there are functions in contrib that do the reflection
for you, yes?

On Tue, Jul 26, 2011 at 3:31 AM, Shantanu Kumar
<kumar.shant...@gmail.com> wrote:
>> My motivation is need to construct list of Java objects and I would
>> like to have some concise syntax to write them. So I decided to do
>> this with maps.
>
> Perhaps something like this:
>
>
> (defn ^java.lang.reflect.Field get-field
>  "Return Field object"
>  [class-or-obj ^String field-name]
>  (let [c (if (class? class-or-obj)
>              class-or-obj
>              (class class-or-obj))
>        f (.getDeclaredField c field-name)]
>    (.setAccessible f true)
>    f))
>
>
> (defn as-str
>  [a]
>  (if (instance? clojure.lang.Named a)
>      (name a)
>      (str a)))
>
>
> (defn set-field-value
>  [obj [field-name value]]
>  (let [f (get-field obj (as-str field-name))]
>    (.set f obj value)
>    obj))
>
>
> ;; returns the object
> (reduce set-field-value
>        (Something.)
>        {:id 10 :name "Impostor!"})
>
> Regards,
> Shantanu
>
> --
> 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



-- 
And what is good, Phaedrus,
And what is not good—
Need we ask anyone to tell us these things?

-- 
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

Reply via email to