import java.util.Arrays;
import java.util.List;

public class Main<@Test T extends @Test Object> extends @Test Object implements @Test TestInterface {

    private List<@Test String> strings;

    private @Test Object @Test2 [] data;

    public static void main(String[] args) throws @Test Exception {
        new @Test Main();

        @Test int i = 0, j, k;
        Object o = "";
        @Test String s = (@Test String)o;
        @Test String s2 = (@Test String)o;
        @Test String s3 = (@Test String)o;

        String a = s + s2 + s3;

        TestInterface t = Arrays::<@Test int[]>sort;
        handleTest(t);


        try {
            handleTest(Main::testMethod);
        } catch (@Test Exception e) {
            e.printStackTrace();
        }

    }

    private static void handleTest(@Test TestInterface t2) {
        t2.run(new int[0]);
    }

    @Override
    public void run(int[] data) {

    }

    public static void testMethod(int[] data) {

    }


}
