@@ -0,0 +1,1132 @@
+import java.lang.annotation.*;%0Aimport java.lang.reflect.Field;%0A/**%0A * Created by Velik Georgiev on 11/3/2017.%0A */%0A%0A@Retention(RetentionPolicy.RUNTIME)%0A@Target(ElementType.FIELD)%0A@interface InstanceRegister %7B %7D%0A%0Apublic class LTPExample %7B%0A%0A    @InstanceRegister%0A    private LTPExample example;%0A%0A    @InstanceRegister%0A    private String stringTest;%0A%0A    public LTPExample() %7B%0A        get(LTPExample.class);%0A    %7D%0A%0A    public static void get(Class%3C?%3E clazz) %7B%0A        Field%5B%5D fields = clazz.getDeclaredFields();%0A%0A        for (Field field: fields) %7B%0A            Annotation%5B%5D annotation = field.getDeclaredAnnotations();%0A%0A            for (Annotation current: annotation) %7B%0A                if (current.annotationType().getSimpleName().equals(%22InstanceRegister%22)) %7B%0A                    System.out.println(%22Instance Of: %22 + field.getType().getSimpleName());%0A                    System.out.println(%22Variable Name: %22 + field.getName());%0A                    System.out.println(%22----------------------------------%22);%0A                %7D%0A            %7D%0A        %7D%0A    %7D%0A%0A    public static void main(String%5B%5D args) %7B%0A        new LTPExample();%0A    %7D%0A%7D%0A

Create LTPExample.java