27

スプリングレストコントローラーを使用しています。

これがコードです。

@RequestParam(value = "status", required = false, defaultValue = StatusEnum.STATUS.toString())

enum を defaultValue として使用すると、注釈属性 RequestParam.defaultValue の値は定数式である必要があります。

私の理解によれば、列挙型をデフォルト値として受け入れる必要があります。

ご意見をお聞かせください。

4

2 に答える 2

29

これは文字列でなければならず、定数式でなければならないため、ここでの唯一の実際のオプションは、 で機能する値を使用することEnum.valueOf()です。これが最終的に解決される方法だからです。

具体的には、あなたは読むべきです

@RequestParam(value = "status", required = false, defaultValue = "STATUS")

もちろん、それ"STATUS"が の文字列値であると仮定しStatusEnum.STATUSます。

于 2013-11-21T02:17:35.363 に答える
0

別の場所にある文字列を避けるための回避策は、そのようなものを使用することです

public enum StatusEnum {
    STATUS();
    
    public class Names {
       public static final String STATUS = "STATUS";
    }
    
 }

そしてクエリパラメータで

@RequestParam(value = "status", required = false, defaultValue = StatusEnum.Names.STATUS)
于 2021-12-03T14:26:11.183 に答える