Use intersection types on pre-Java8.

@tbroyer