Generics is one of the best things that happened to Java. Anyone who has worked with Java during its pre-JDK5 era can attest to that. For new developments, it has drastically reduced the amount of written codes and provided compile-time type checking using Generic Types. However, there are some things you cannot do with Generics Types.