Is it possible to create variables at runtime in Java?
The simple answer is No.
Java is a static language and does not support the injection of new variable declarations into an existing compiled program. There are alternatives (in order of decreasing usefulness / increasing difficulty):
- Represent your “variables” as name / value pairs in a
Map
. Or come up with some other design that doesn’t require real dynamic variables. - Use a scripting language that runs on the JVM and is callable from Java.
- Use some kind of templating mechanism to generate new source code containing the declarations, and compile and load it dynamically.
- Use a byte code manipulation library (e.g. BCEL) to create class files on the fly and then dynamically load them.
The first approach is the best. Java is a static language, and works best if you don’t fight it. If this is a problem for you, maybe you are using the wrong language.
The last two are difficult / complicated and have significant performance costs. They are almost certainly not going to help …