Why declare final variables inside methods?
<p>Studying some classes of Android, I realized that most of the variables of methods
are declared as final.</p>

<p>Example code taken from the class android.widget.ListView:</p>

<pre><code>/**
* @return Whether the list needs to show the top fading edge
*/
private boolean showingTopFadingEdge() {
    final int listTop = mScrollY + mListPadding.top;
    return (mFirstPosition &gt; 0) || (getChildAt(0).getTop() &gt; listTop);
}

/**
 * @return Whether the list needs to show the bottom fading edge
 */
private boolean showingBottomFadingEdge() {
    final int childCount = getChildCount();
    final int bottomOfBottomChild = getChildAt(childCount - 1).getBottom();
    final int lastVisiblePosition = mFirstPosition + childCount - 1;
    final int listBottom = mScrollY + getHeight() - mListPadding.bottom;
    return (lastVisiblePosition &lt; mItemCount - 1)
                     || (bottomOfBottomChild &lt; listBottom);
}
</code></pre>

<p>What is the intention of using the final keyword in these cases?</p>
