add java generic function