Effective and Efficient Compilation of Run-Time Generics in Java