code: public static List<FieldAccessor> getPropertiesWithAnnotation(final Class<?> targetClass, final AnnotationReader annoReader,
              final Class<? extends Annotation> annoClass) {
          
          ArgUtils.notNull(targetClass, "targetClass");
          ArgUtils.notNull(annoReader, "annoReader");
          ArgUtils.notNull(annoClass, "annoClass");
          
          final FieldAccessorFactory accessorFactory = new FieldAccessorFactory(annoReader);
          final List<FieldAccessor> list = new ArrayList<>();
          
          for(Method method : targetClass.getMethods()) {
              if(!ClassUtils.isAccessorMethod(method)) {
                  continue;
              }
              
              method.setAccessible(true);
              
              final FieldAccessor accessor = accessorFactory.create(method);
              if(accessor.hasAnnotation(annoClass) && !list.contains(accessor)) {
                  list.add(accessor);
              }
          }
          
          for(Field field : targetClass.getDeclaredFields()) {
              field.setAccessible(true);
              
              final FieldAccessor accessor = accessorFactory.create(field);
              if(accessor.hasAnnotation(annoClass) && !list.contains(accessor)) {
                  list.add(accessor);
              }
              
          }
          
          return list;
          
      }
docs: 指定したアノテーションを持つBeanのプロパティ（フィールド、アクセッサメソッド）の一覧を取得します。
  @param targetClass 取得元のクラス情報
  @param annoReader {@link AnnotationReader}のインスタンス。
  @param annoClass アノテーションのクラス
  @return プロパティの一覧。存在しない場合は、空のリストを返す。
  @throws IllegalArgumentException {@literal targetClass == null or annoReader == null or annoClass == null.}