Dynamic Type In Java