code: static Annotation[] findAndSortAnnotations(Annotation annotation) {
          final Annotation[] metaAnnotations = annotation.annotationType().getAnnotations();
          Arrays.sort(metaAnnotations, new Comparator<Annotation>() {
              @Override
              public int compare(Annotation o1, Annotation o2) {
                  if (o1 instanceof ChameleonTarget) {
                      return -1;
                  }
  
                  if (o2 instanceof ChameleonTarget) {
                      return 1;
                  }
  
                  return 0;
  
              }
          });
          return metaAnnotations;
      }
docs: We need to sort annotations so the first one processed is ChameleonTarget so these properties has bigger preference that the inherit ones.
  @param annotation
  @return