Type Inference In Java