public void method1(final Object obj) {
new AnonymousClass() {
obj.invoke();
}
}
與
public void method1(Object obj) {
final Object tmpObj = obj;
new AnonymousClass() {
tmpObj .invoke();
}
}
之間有區別嗎?主要的區別是什麼?
final修飾變量意思這個值定了,再改就報錯
以上的兩個final修飾的變量就不一樣是有區別的
前者修改傳過來的參數obj就報錯,後者修改不報錯
因為只把重新定義的tmpObj定為了常量
從當前執行效果來看無區別
關健字final還可用於修飾類\方法,意思就是不能繼承和重寫