Generics aren't present at runtime -- they are a compile time "hack"
in Java. So at run time, your 2nd argument is a Map, nothing special
about it (the generic is no longer visible then). So you will be
correct in not putting the generic definition in the function
definition.

On 11/9/06, Daniel Young <[EMAIL PROTECTED]> wrote:







PS:  if I remove the generic part from the Map declaration works fine, so
it's not a biggie…


 ________________________________


From: Daniel Young [mailto:[EMAIL PROTECTED]
 Sent: Friday, 10 November 2006 2:24 PM
 To: [email protected]
 Subject: Generics in <function-signature> for custom EL function




Hi all,



I'm trying to expose the following function in EL:



public static String getMessage(final String locale, final Map<String,
Message> messages) {

. . .

}



However I'm having trouble specifying the messages parameter in my
taglib.xml, due to the Generic.  I have the following:



      <function>

        <function-name>getMessage</function-name>


<function-class>com.synyati.spurwing.i18n.entity.Message</function-class>

        <function-signature>java.lang.String
getLocalisedMessage(java.lang.String,
java.util.Map&lt;java.lang.String,com.synyati.spurwing.i18n.entity.Message&gt;)</function-signature>

      </function>




The &lt; seems to encode fine, but there comma between the String and
Message seems to confuse things.  I get the following:



Caused by: java.lang.ClassNotFoundException:
java.util.Map<java.lang.String



Is this a known error, or can I get around it somehow?





Cheers,

Daniel.


Reply via email to