How do I create some variable type alias in Java
let say I have this code
Map<String, String> list = new HashMap<String, String>();
list.put("number1", "one");
list.put("number2", "two");
how can I make some "alias" the type
Map<String, String>
to something that easier to be rewritten like
// may be something like this
theNewType = HashMap<String, String>;
theNewType list = new theNewType();
list.put("number1", "one");
list.put("number2", "two");
basically my question is, how to create "alias" to some "type", so i can make it easier to write and easier when need to change the whole program code.
Thanks, and sorry if this is silly question. I'm kinda new in Java.
Solution 1:
There are no aliases in Java. You can extend the HashMap
class with your class like this:
public class TheNewType extends HashMap<String, String> {
// default constructor
public TheNewType() {
super();
}
// you need to implement the other constructors if you need
}
But keep in mind that this will be a class it won't be the same as you type HashMap<String, String>
Solution 2:
There is no typedef
equivalent in Java, and there is no common idiom for aliasing types. I suppose you could do something like
class StringMap extends HashMap<String, String> {}
but this is not common and would not be obvious to a program maintainer.