Class.getDeclaredMethods
狀態以下:是否有任何特定的順序由`Class.getDeclaredClasses()`返回的數組中的元素?
返回的數組中的元素沒有排序並且不以任何特定的順序。
Class.getDeclaredClasses
然而,並沒有指定任何關於返回數組元素的順序。
它是否應該在任何特定的順序返回元素?是否有一些JRE實現的規範可以定義這些?
Class.getDeclaredMethods
狀態以下:是否有任何特定的順序由`Class.getDeclaredClasses()`返回的數組中的元素?
返回的數組中的元素沒有排序並且不以任何特定的順序。
Class.getDeclaredClasses
然而,並沒有指定任何關於返回數組元素的順序。
它是否應該在任何特定的順序返回元素?是否有一些JRE實現的規範可以定義這些?
一般情況下,你只能依靠東西都是在語言規範明確規定。如果事情沒有明確的規範說明,你不能想當然地認爲它會在任何特定的方式,即使你觀察它以一定的方式是,因爲它可能會更改,恕不在未來的一個警告。
你可能會問,如果是這樣的話,那麼爲什麼語言規範明確作廢約Class.getDeclaredMethods()
任何保證?如果沒有保障的意思是「無擔保」,那麼爲什麼不乾脆規範有關Class.getDeclaredMethods()
保持沉默?
這是因爲用來返回特定順序的元素,和很多人依靠這一點,但隨後的語言的創造者決定在某個時候廢除的是,(我認爲這是與Java 7 Class.getDeclaredMethods()
但我的記憶可能會讓我失望),所以他們必須明確表示他們正在採取這種行動。
這是一個警告,任何超出規範說明的假設都不是假設性地讓你陷入困境的事情,而是一件真正發生並且極有可能繼續發生的事情。放聰明點。不要陷入麻煩。