getFields()
とを使用してフィールドのリストを取得する場合getDeclaredFields()
、aのフィールドの順序Java class
は定義されていません。
検証ライブラリでこの順序が必要です。順序は保持されないため(ただし、順序はJDK 6以降で保持されるが、VM間で保証されないという主張もあります)。フィールド間の注釈の順序はライブラリにとって絶対に不可欠であるため、これについて推測することはできません。
これを回避する1つの方法は、私のにorder
またはindex
属性を含めることAnnotation
です。
私が心配しているのは、次の場合にコードを維持するのが少し面倒になる可能性があることです。
- 使用者が新しい注釈付きフィールドを挿入したい場合は、クラス内の他のすべての注釈の番号を付け直す必要がある場合があります。
order
またはindex
を浮動小数点数として持つことができます-float
またはdouble
、しかし、1、1.5、2などの順序を持つのは見栄えがよくありません。
この問題のエレガントな解決策は何でしょうか?
問題についてのアイデアを得ることができるように、サンプルコードを次に示します。
@Required
@TextRule (minLength = 6, message = "You need at least 6 characters.")
private EditText usernameEditText;
@Password
private EditText passwordEditText;
@ConfirmPassword
private EditText confirmPasswordEditText;
@Email
private EditText emailEditText;