code: public static Optional<Field> extractField(final Class<?> targetClass, final String propertyName, final Class<?> propertyType) {
          
          final Field field;
          try {
              field = targetClass.getDeclaredField(propertyName);
          } catch (NoSuchFieldException | SecurityException e) {
              return Optional.empty();
          }
          
          field.setAccessible(true);
          
          if(!field.getType().equals(propertyType)) {
              return Optional.empty();
              
          }
          
          return Optional.of(field);
          
      }
docs: クラスから、指定したフィールド情報を取得します。
  @param targetClass フィールドが定義されているクラス
  @param propertyName プロパティ名
  @param propertyType プロパティタイプ
  @return 存在しない場合、空を返します。