code: private Optional<ArrayLabelSetter> createMethod(final Class<?> beanClass, final String fieldName) {
          
          final String labelMethodName = "set" + Utils.capitalize(fieldName) + "Label";
          
          try {
              final Method method = beanClass.getDeclaredMethod(labelMethodName, Integer.TYPE, String.class);
              method.setAccessible(true);
              
              return Optional.of(new ArrayLabelSetter() {
                  
                  
                  @Override
                  public void set(final Object beanObj, final String label, final int index) {
                      ArgUtils.notNull(beanObj, "beanObj");
                      ArgUtils.notEmpty(label, "label");
                      
                      try {
                          method.invoke(beanObj, index, label);
                          
                      } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
                          throw new RuntimeException("fail access label field.", e);
                      }
                      
                  }
              });
              
          } catch (NoSuchMethodException | SecurityException e) {
              
          }
          
          return Optional.empty();
          
      }
docs: setterメソッドによるラベル情報を格納する場合。
  <p>{@code set + <フィールド名> + Labels}のメソッド名</p>
  
  @param beanClass フィールドが定義してあるクラスのインスタンス
  @param fieldName フィールド名
  @return ラベル情報の設定用クラス