Re: Substitute value in HashMap at runtime
mike wrote:
If I create a HashMap with something like:
static Map<String,String> map = new
HashMap<String,String>("variable",MyPreferences.getVariableValue());
If I do it like this I guess that MyPreferences.getVariableValue()
will not be substituted but be the "plain" string.
Nope. If you do it like that your code will fail to compile (assuming you're referring to 'java.util.HashMap').
<http://download.oracle.com/javase/7/docs/api/java/util/HashMap.html>
Put together a Simple Self-Contained Compilable Example (SSCCE) per
http://sscce.org/
Seriously. Do it.
Even if you use a correct constructor, if 'MyPreferences.getVariableValue()' is not of type 'String' you have a problem:
public class Foo
{
static Map<String,String> map = new HashMap<>();
static
{
map.put( "variable", MyPreferences.getVariableValue() );
}
}
The type of the entry must match the type of the target.
BTW, I assume that 'getVariableValue()' is a static member of 'MyPreferences', given that you named the latter as a type and not a variable.
How can I make my MyPreferences.getVariableValue() be evaluated at
runtime? Any example?
Use the expression 'MyPreferences.getVariableValue()'.
Let's see that SSCCE in your next post, otherwise there's not much point in continuing, is there? We need full data to understand what you aim to accomplish, and you need full data for any answer to make any sense.
SSCCE.
http://sscce.org/
--
Lew