Hi,
Is it possible to use reflection to get the param/arg names i and d in
second constructor? ( I am using jdk 1.4).
cheers,
//mikael
public class Constructor1 {
public Constructor1()
{
}
protected Constructor1(int i, double d)
{
}
}
Hendrik Maryns - 28 Jun 2006 14:50 GMT
Petterson Mikael schreef:
> Hi,
>
[quoted text clipped - 14 lines]
> }
> }
The names are absolutely meaningless, except in the inners of the
method, so there is absolutely no reason to want to get them. What do
you REALLY want?
H.
- --
Hendrik Maryns
==================
http://aouw.org
Ask smart questions, get good answers:
http://www.catb.org/~esr/faqs/smart-questions.html
Thomas Hawtin - 28 Jun 2006 17:27 GMT
> Is it possible to use reflection to get the param/arg names i and d in
> second constructor? ( I am using jdk 1.4).
No, the information is not present in the source file.
There are a number of workarounds:
o APT (introduced in 1.5, part of javac in 1.6) gives access to
parameter names (it works on source). For instance see:
http://weblogs.java.net/blog/emcmanus/archive/2006/06/intermxbean_ref.html
o Run some form of parser on your source to store the information in a
convenient format. You could use a complete parser (like APT), or add
tags within comments to the source.
o Compile with variable name debugging enabled, and use ASM (or
similar) to read the class file.
o Compile with line number and file name debugging. Read the
information for the constructors with either ASM or arrange for an
exception to be thrown/created (and parse the stack trace). Use a regex
to extract the information from the source (which will need to be easy
to regex). See: http://www.jroller.com/page/cpurdy?entry=yaul_trace
Tom Hawtin

Signature
Unemployed English Java programmer
http://jroller.com/page/tackline/