使用getFields()
和getDeclaredFields()
獲取字段列表時,Java class
中字段的順序未定義。保留註釋的順序
我需要此訂單在我的驗證庫中。由於訂單未被保留(儘管有人聲稱訂單保留在JDK 6及更高版本中,但無法保證跨VM)。我無法對此進行推測,因爲跨領域的註釋順序對於圖書館來說絕對是必不可少的。
一個辦法來解決這個問題是有一個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;
將名稱排序爲字符串會出現什麼問題?看起來像我的自然順序(如果您更改名稱,您正在更改方法)。 – SJuan76
@ SJuan76請檢查上面的代碼,字符串排序不會是一個選項。通過他們的名字看起來Dalvik VM訂單字段。所以註釋的順序也不會保留。 –