回答編集履歴
4
ラムダ式とコンストラクタ参照を混ぜてたので修正
    
        answer	
    CHANGED
    
    | @@ -31,9 +31,9 @@ | |
| 31 31 | 
             
            Java8以降なら、例えばこの`getInstance()`メソッドであれば、Supplierインタフェースで代用することもできるかと思います。
         | 
| 32 32 | 
             
            ```java
         | 
| 33 33 | 
             
            enum Kubun{
         | 
| 34 | 
            -
                K1(Arrays.asList("あかさ1","たなは1","まやら1"),  | 
| 34 | 
            +
                K1(Arrays.asList("あかさ1","たなは1","まやら1"), K1bean::new),
         | 
| 35 | 
            -
                K2(Arrays.asList("あかさ2","たなは2","まやら2"),  | 
| 35 | 
            +
                K2(Arrays.asList("あかさ2","たなは2","まやら2"), K2bean::new),
         | 
| 36 | 
            -
                K3(Arrays.asList("あかさ3","たなは3","まやら3"),  | 
| 36 | 
            +
                K3(Arrays.asList("あかさ3","たなは3","まやら3"), K3bean::new);
         | 
| 37 37 | 
             
            //  もしくは共通する部分に関してはnullにして、メソッドの方でnullか否かで判定するという手もある。
         | 
| 38 38 | 
             
            //  K3(Arrays.asList("あかさ3","たなは3","まやら3"), null);
         | 
| 39 39 |  | 
3
後半にオーバーライド関係なかった
    
        answer	
    CHANGED
    
    | @@ -31,7 +31,6 @@ | |
| 31 31 | 
             
            Java8以降なら、例えばこの`getInstance()`メソッドであれば、Supplierインタフェースで代用することもできるかと思います。
         | 
| 32 32 | 
             
            ```java
         | 
| 33 33 | 
             
            enum Kubun{
         | 
| 34 | 
            -
                // 分岐するものについてはそれぞれオーバーライド
         | 
| 35 34 | 
             
                K1(Arrays.asList("あかさ1","たなは1","まやら1"), () -> K1bean::new),
         | 
| 36 35 | 
             
                K2(Arrays.asList("あかさ2","たなは2","まやら2"), () -> K2bean::new),
         | 
| 37 36 | 
             
                K3(Arrays.asList("あかさ3","たなは3","まやら3"), () -> K3bean::new);
         | 
2
Supplierインタフェースを利用
    
        answer	
    CHANGED
    
    | @@ -26,4 +26,30 @@ | |
| 26 26 | 
             
                    return new K3bean();
         | 
| 27 27 | 
             
                } 
         | 
| 28 28 | 
             
            }
         | 
| 29 | 
            +
            ```
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            Java8以降なら、例えばこの`getInstance()`メソッドであれば、Supplierインタフェースで代用することもできるかと思います。
         | 
| 32 | 
            +
            ```java
         | 
| 33 | 
            +
            enum Kubun{
         | 
| 34 | 
            +
                // 分岐するものについてはそれぞれオーバーライド
         | 
| 35 | 
            +
                K1(Arrays.asList("あかさ1","たなは1","まやら1"), () -> K1bean::new),
         | 
| 36 | 
            +
                K2(Arrays.asList("あかさ2","たなは2","まやら2"), () -> K2bean::new),
         | 
| 37 | 
            +
                K3(Arrays.asList("あかさ3","たなは3","まやら3"), () -> K3bean::new);
         | 
| 38 | 
            +
            //  もしくは共通する部分に関してはnullにして、メソッドの方でnullか否かで判定するという手もある。
         | 
| 39 | 
            +
            //  K3(Arrays.asList("あかさ3","たなは3","まやら3"), null);
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                private List<String> codes;
         | 
| 42 | 
            +
                private Supplier<? extends BeanInterface> supplier;
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                private Kubun(List<String> codes, Supplier<? extends BeanInterface> supplier) {
         | 
| 45 | 
            +
                    this.codes = codes;
         | 
| 46 | 
            +
                    this.supplier = supplier;
         | 
| 47 | 
            +
                }
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                public BeanInterface getInstance(){
         | 
| 50 | 
            +
                    return supplier.get();
         | 
| 51 | 
            +
            //      K3の第2引数をnullにしている場合
         | 
| 52 | 
            +
            //      return supplier == null ? new K3bean() : supplier.get();
         | 
| 53 | 
            +
                } 
         | 
| 54 | 
            +
            }
         | 
| 29 55 | 
             
            ```
         | 
1
コメント修正
    
        answer	
    CHANGED
    
    | @@ -2,6 +2,7 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            ```java
         | 
| 4 4 | 
             
            enum Kubun{
         | 
| 5 | 
            +
                // 分岐するものについてはそれぞれオーバーライド
         | 
| 5 6 | 
             
                K1("あかさ1","たなは1","まやら1"){
         | 
| 6 7 | 
             
                    @Override
         | 
| 7 8 | 
             
                    public BeanInterface getInstance(){
         | 
| @@ -20,7 +21,7 @@ | |
| 20 21 | 
             
                private String code2;
         | 
| 21 22 | 
             
                private String code3;
         | 
| 22 23 |  | 
| 23 | 
            -
                //  | 
| 24 | 
            +
                // 共通処理を書く
         | 
| 24 25 | 
             
                public BeanInterface getInstance(){
         | 
| 25 26 | 
             
                    return new K3bean();
         | 
| 26 27 | 
             
                } 
         | 
