java inference