import java.lang.reflect.ParameterizedType;

public class Xx<S> { 

    public static <T> void main(String[] args) { 
        printIt(new Xx<T>() {}.getClass()); 

        Runnable r = () -> printIt(new Xx<T>() {}.getClass()); 
        r.run(); 
    } 

    static void printIt(Class<?> cl) { 
        ParameterizedType pt = (ParameterizedType) cl.getGenericSuperclass(); 
        System.out.println(pt.getActualTypeArguments()[0]); 
    } 
} 
