저는 메서드에 로컬 인 변수를 왜 final로 선언 할 수 없는지 알고 싶습니다. 특별한 이유가 있습니까?메소드에 대한 로컬 변수가 최종 선언 될 수없는 이유는 무엇입니까?
Java에 로컬 상수가 없다는 것을 의미합니까?
저는 메서드에 로컬 인 변수를 왜 final로 선언 할 수 없는지 알고 싶습니다. 특별한 이유가 있습니까?메소드에 대한 로컬 변수가 최종 선언 될 수없는 이유는 무엇입니까?
Java에 로컬 상수가 없다는 것을 의미합니까?
최종 선언 가능. 귀하의 실제 문제는 다른 곳에 있습니다. Java specification §4.5.4에서
은 :
변수는 최종 선언 할 수 있습니다. 최종 변수는 한 번만 할당 할 수 있습니다. 할당 직전에 할당되지 않은 변수 (§16)가 아니라면 최종 변수가 할당되면 컴파일 타임 오류가 발생합니다.
즉, 이는 매우 합법적입니다. 또한 가능한 한 로컬 변수가 final
인 best practice으로 간주됩니다.
로컬 변수를 사용하여 final을 사용할 수도 있습니다 (적절한 경우). [...] 합리적인 접근법은 메소드에 적어도 하나의 비 최종 로컬 변수가있는 경우에만 로컬 변수에 final을 사용하는 것입니다. 이는 비 최종 로컬 변수를 다른 변수와 빠르게 구별하는 역할을합니다.
클래스/인스턴스의 경우, 신중하게 사용해야합니다. 그러나 지역 변수 (로컬/익명 클래스가 액세스하지 않은 경우)는 더 중요한 취향입니다. – helpermethod
우리는 할 수 없다고 말했습니다. 우리는 선언 할 수 있습니다. 메서드에서 사용할 수없는 정적과 혼동했을 수 있습니다.
어리석은 실수! 아마도 당신은 참조 변수를 언급하지 않고 'token'에 대한 구문 오류, 'invalid Type'과 같은 불평을 들었을 것입니다. 예 여기에 질문을했을 때 그 순간에 바보 같은 실수를 저지른 것이 확실합니다.
참고 문헌을 인용하거나 예제 코드 (및 컴파일러, 컴파일 오류 포함)를 제공하십시오. –
몇 가지 샘플 코드를 게시 하시겠습니까? –