<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>This question arises in
<a class="moz-txt-link-freetext" href="https://issues.jboss.org/browse/RESTEASY-1209">https://issues.jboss.org/browse/RESTEASY-1209</a>
"org.jboss.resteasy.util.Types#getActualTypeArgumentsOfAnInterface
not working for lambda's." The reporter wants to do this:</p>
<p><br>
</p>
<p>
<blockquote type="cite">
<pre style="font-size: 1em; margin: 0 10px; width: auto; padding: 0;"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">        ResteasyProviderFactory factory = new ResteasyProviderFactory();</span></pre>
<pre style="font-size: 1em; margin: 0 10px; width: auto; padding: 0;"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">        factory.register((ContextResolver<String>) type -> "foo bar");</span></pre>
</blockquote>
<br>
</p>
but it doesn't work. I find that if I do this:<br>
<br>
<blockquote type="cite"> ContextResolver<String>
resolver1 = new ContextResolver<String>() {<br>
<br>
@Override<br>
public String getContext(Class<?> type)<br>
{<br>
return null;<br>
} <br>
};<br>
for (Type type :
resolver1.getClass().getGenericInterfaces())<br>
{<br>
System.out.println(type);<br>
}</blockquote>
<br>
I get<br>
<br>
<blockquote type="cite">javax.ws.rs.ext.ContextResolver<java.lang.String></blockquote>
<br>
but if I do<br>
<br>
<blockquote type="cite"> ContextResolver<String>
resolver2 = type -> "foo";<br>
for (Type type :
resolver2.getClass().getGenericInterfaces())<br>
{<br>
System.out.println(type);<br>
}</blockquote>
<br>
I get<br>
<br>
<blockquote type="cite">interface javax.ws.rs.ext.ContextResolver</blockquote>
<br>
Same with<br>
<br>
<blockquote type="cite"> ContextResolver<String>
resolver2 = ((ContextResolver<String>)type -> "foo");</blockquote>
<br>
So, it seems that, for lambdas, Java doesn't keep the implementation
type and value of the type variable at run time. Does anyone have
any ideas or tricks?<br>
<br>
Thanks,<br>
Ron<br>
<br>
<br>
<br>
<br>
<pre class="moz-signature" cols="72">--
My company's smarter than your company (unless you work for Red Hat)</pre>
</body>
</html>