public Optional<ArrayPositionSetter> create(final Class<?> beanClass, final String fieldName) {
        
        ArgUtils.notNull(beanClass, "beanClass");
        ArgUtils.notEmpty(fieldName, "fieldName");
        
        // フィールド Map positionsの場合
        Optional<ArrayPositionSetter> arrayPositionSetter = createMapField(beanClass, fieldName);
        if(arrayPositionSetter.isPresent()) {
            return arrayPositionSetter;
        }
        
        // setter メソッドの場合
        arrayPositionSetter = createMethod(beanClass, fieldName);
        if(arrayPositionSetter.isPresent()) {
            return arrayPositionSetter;
        }
        
        // フィールド + positionの場合
        arrayPositionSetter = createField(beanClass, fieldName);
        if(arrayPositionSetter.isPresent()) {
            return arrayPositionSetter;
        }
        
        
        return Optional.empty();
    }
public Optional < ArrayPositionSetter > create ( final Class < ? > beanClass , final String fieldName ) { ArgUtils . notNull ( beanClass , "beanClass" ) ; ArgUtils . notEmpty ( fieldName , "fieldName" ) ; Optional < ArrayPositionSetter > arrayPositionSetter = createMapField ( beanClass , fieldName ) ; if ( arrayPositionSetter . isPresent ( ) ) { return arrayPositionSetter ; } arrayPositionSetter = createMethod ( beanClass , fieldName ) ; if ( arrayPositionSetter . isPresent ( ) ) { return arrayPositionSetter ; } arrayPositionSetter = createField ( beanClass , fieldName ) ; if ( arrayPositionSetter . isPresent ( ) ) { return arrayPositionSetter ; } return Optional . empty ( ) ; }
フィールドの位置情報を設定するためのアクセッサを作成します。
@param beanClass フィールドが定義されているクラス情報
@param fieldName フィールドの名称
@return 位置情報のsetterが存在しない場合は空を返す。
@throws IllegalArgumentException {@literal beanClass == null or fieldName == null}
@throws IllegalArgumentException {@literal fieldName.isEmpty() = true}