Avoid using strong-type-safe in Java generics provided only by higher version JDK compilers, make it more friendly to old-fashion 1.5 javac compiler