[ACCEPTED]-How to create new variable in java dynamically-java
No. Have you considered storing a Map<String, Object>
in the 6 class instead? The keys in the map would 5 be the "variable names" and the values in 4 the map would be the logical variable names.
If 3 you could give more information about what 2 you're trying to achieve (from a high-level 1 perspective) that would help.
No, this is not possible to do in Java.
The 6 fields in a class is determined at compile 5 time and can't be changed during runtime 4 (except though sophisticated techniques 3 such as class reloading though for instance 2 JRebel). I would however not recommend doing this, unless you're writing 1 some IDE for instance.
A class and its members are defined and 7 then compiled to bytecode, so they cannot 6 be readily modified at run-time. That said, there 5 are a number of libraries out there, such 4 as cglib, which provide runtime modification 3 functionality. This page can tell you more: http://java-source.net/open-source/bytecode-libraries
(This 2 is not to say that runtime modification 1 is the right thing to do!)
In a good design, a class must represent 8 something, semantically speaking. You design 7 it to represent an object in your system.
If 6 you want to add more things to a design 5 in run-time, well, something's not quite 4 right -- unless, of course, the design needs 3 adding information in run-time, and there 2 are tons of data structures just ready for 1 the job!
Check out Map
s in Java, for example.
Following is the way that i have implemented 6 and helped me to fix my solution easily 5 without much hurdles.
// Creating the array 4 List
List accountList = new ArrayList();
for(int k=0;k < counter;k++){
accountList.add(k, (String)flowCtx.getValueAt("transitId"+m));
}
Iterating the loop and adding the objects 3 into the arraylist with the index.
//Retrieving 2 the object at run time with the help of 1 the index
String a = accountList.get(i));
Using a HashMap could be a solution. For 4 example, if we have the following class:
class Staff {
private HashMap<String, Object> mylist = new HashMap<String, Object>() ;
void setNewVar(String s, Object o) {
mylist .put(s, o);
}
HashMap<String, Object> getVar() {
return mylist;
}
}
I 3 can use it as:
staff.setNewVar("NumVars",11);
staff.setNewVar("NumBatches",300);
...
and then:
staff.getVar()
wherever you need. I 2 use it to convert some variables (the number 1 can change) to JSON, successfully.
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.