I'd dig into it a bit more, since the JVM doesn't support generics either.
So if there's an api looking for some marker interfaces, it might be
possible to implement those interfaces as well. There's probably a way to
do this in pure Clojure.

On Thu, Aug 4, 2016 at 4:55 PM, Colin Fleming <[email protected]>
wrote:

> Hi Jakub,
>
> Yes, that is correct - Clojure interop only deals with raw classes, it has
> no concept of generics. Java is the way to go here.
>
> Cheers,
> Colin
>
> On 5 August 2016 at 09:28, Jakub Holý <[email protected]> wrote:
>
>> I need to implement the interface
>> javax.websocket.MessageHandler.Whole<String> - the type parameter is
>> important since the Java code uses reflection to check
>> <https://github.com/tyrus-project/tyrus/blob/373fab2f47ff06167d6ced8475085004ffbbfd5a/core/src/main/java/org/glassfish/tyrus/core/ReflectionHelper.java#L528>
>> whether the result is instanceof java.lang.reflect.ParameterizedType.
>>
>> I believe I cannot use proxy or any other available Clojure mechanism as
>> they do not support generics. Is that correct?
>>
>> I believe that the only (and best) solution is to implement the interface
>> in Java and then possibly extend the resulting class:
>>
>> public class TextMessageHandler implements
>> javax.websocket.MessageHandler.Whole<String> {
>>     public void onMessage(String message) {
>>     }
>> }
>> ----
>> (proxy [TextMessageHandler] []
>>     (onMessage [msg]
>>       (println "received message(" (.getClass msg) "):" msg)))
>>
>>
>> Correct?
>>
>> Thank you!
>>
>> Cheers, Jakub Holý
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to [email protected]
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> [email protected]
>> 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 [email protected].
>> 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 [email protected]
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> [email protected]
> 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 [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to