Patty
Patty

Reputation: 13

Manipulating Java classes with Java

I would like to manipulate Java classes (with java extension not .class) so that I could :

Is there an API that could accomplish this ?

What I've done so far is trying to manipulate the .java files like text files (with regex,FileUtils, etc.).

Regards. I

Upvotes: 0

Views: 118

Answers (4)

Daniel Boncioaga
Daniel Boncioaga

Reputation: 348

Yes, you can use java reflection api. Please check here

Later edit: To update the class structure you can use javassist. Here you have an example.

Upvotes: 0

barlop
barlop

Reputation: 13790

You can use a regular expression, the question then is then what regular expression (And what other options are there!)

Regular expressions maybe aren't ideally suited to this, and for example, when it comes to another task they're not ideally suited to, such as parsing XML, people say don't do it, use an XML parser, but in this case, if you find that there is an absence of a tool built for parsing java source code, then regular expressions may be the best option.

Upvotes: 0

tonys
tonys

Reputation: 3984

You could look at using the AST (Abstract Syntax Tree) tools from the Eclipse JDT project.

There is a tutorial to get you started at Vogella: Eclipse JDT - Abstract Syntax Tree (AST) and the Java Model - Tutorial

Upvotes: 1

robjwilkins
robjwilkins

Reputation: 5652

If you only want to temporarily modify the classes (i.e. within the scope of the jvm) then you could do this with reflection:

What is reflection and why is it useful?

If you're taking about permanently altering/creating source code then this is maybe best done using an IDE. Most IDE will tell you about unimplemented methods and provide auto completion to create them. They will also format the source code, remove unused imports etc.

Upvotes: 0

Related Questions