Unnecessary casts clog your code and slow down you applications. They may seem small individually, but if they are inside loops or frequent code paths, they do add up. One common unnecessary cast happens to java.util.Map key:
public static void unnecessaryCast() {

Map map = new HashMap();
map.put("language", "Java");

for(Iterator it = map.keySet().iterator(); it.hasNext();) {
//casting key to String is unnecessary for map lookup
String key = (String) it.next();

//casting to String is unnecessary for println
String val = (String) map.get(key);

System.out.println("key = " + key + ", value = " + val);
}
}
Casting (in red) for the map key is not needed for the purpose of calling java.util.Map.get(key), unless you also need a String type of key later.

Casting (in blue) for the map value is not needed for the purpose of System.out.println(value), unless you also need a String type of value later. JVM will correctly dispatch to String.toString() when you concatenate ", value = " to an java.lang.Object value.

So I would simply change the two lines to:
Object key = it.next();
Object val = map.get(key);
Tags: , ,
5

View comments

Labels
Archive
Popular Posts
Popular Posts
  • Two JVM options are often used to tune JVM heap size: -Xmx for maximum heap size, and -Xms for initial heap size. Here are some common mi...
  • Simple enum . The ; after the last element is optional, when this is the end of enum definition. public enum Color { WHITE, BLACK, RED, ...
  • How to set project classpath in Eclipse and NetBeans are similar: just right-click the project name, choose Properties to bring up the Prope...
  • Let's say I need to spawn multiple threads to do the work, and continue to the next step only after all of them complete. I will need t...
  • This is a sample web.xml based on Servlet 2.5 (part of Java EE 5) that declares common elements. All top-level elements are optional, and c...
  • The default string value for java enum is its face value, or the element name. However, you can customize the string value by overriding toS...
  • Prior to JDK 6, we can check if a string is empty in 2 ways: if(s != null && s.length() == 0) if(("").equals(s)) Checking ...
  • When writing javadocs, IntelliJ automatically adds a closing tag for html elements. For instance, after typing <lt>, it automaticaly a...
  • StringBuilder was introduced in JDK 1.5. What's the difference between StringBuilder and StringBuffer? According to javadoc , StringBu...
  • With array, we can easily declare and initialize it at the same time: String[] favorites = new String[] {"EJB", "JPA", ...
Loading