java.lang.reflect.Parameter comments

Joseph Darcy joe.darcy at oracle.com
Wed Sep 11 00:12:05 UTC 2013


Hello,

Sending along some responses to these questions from Alex:

On 8/25/2013 7:03 AM, Kasper Nielsen wrote:
> Hi,
>
> just 2 short questions/commons on java.lang.reflect.Parameter
>
> 1)
> I was wondering if there is any reason for java.lang.reflect.Parameter not
> to expose the index field?

"Not sure what you mean by the "index field", but if you mean the 
name_index item in the MethodParameters attribute, then it is possible 
to know whether it's zero by calling Parameter#isNamePresent."

>
> 2)
> Also, while Parameter.getParameterizedType() might be a better name than
> getGenericType().
> I find it kind of annoying that it is called Field.getGenericType() but
> Parameter.getParameterizedType(). Lets just have the same name for
> practically the same functionality?
>

"Yes and no. First, the historic use of getGenericXXX in 
java.lang.reflect is wrong (it should be getParameterizedXXX) but it 
can't be changed now. The Language Model API in javax.lang.model.** is 
much better with terminology. Second, when we add methods to existing 
java.lang.reflect types, we hold our noses and use "Generic" for 
consistency, e.g., the new AnnotatedArrayType interface for type 
annotations has a method getAnnotatedGenericComponentType that is 
consistent with the getGenericComponentType method in GenericArrayType. 
Third, when we add new types to java.lang.reflect, we use the correct 
terminology, hence Parameter#getParameterizedType."

HTH,

-Joe




More information about the core-libs-dev mailing list