documentation of SafeVarargs
에 따르면 @SafeVarargs
주석은 static
또는 final
인 생성자 또는 가변 arity 메소드에만 적용될 수 있습니다. 주석 상속 문제를 제거하기 위해 I have read입니다. 즉, 메서드에 대한 주석은 메서드를 재정의 할 수없는 경우에만 허용됩니다. 분명히 생성자, static
메서드 및 final
메서드를 재정의 할 수 없습니다. 그러나 final class
에 private
방법이나 방법을 사용할 수 없습니다. Someone has complained은 @SafeVarargs private
방법을 지정할 수 없음에 대한 것이지만 neither of these issues has been addressed입니다. 일반적으로 no one really seems to care입니다. 내가 놓친 게 있니? 실용적인 응용 프로그램이없는 것에 대해 불평하고 있습니까? 아니면 ...?@SafeVarags를 최종 클래스의 인스턴스 메서드에 적용 할 수없는 이유는 무엇입니까?
7
A
답변
5
이것은 Java 9에서 수정 될 예정입니다. http://openjdk.java.net/jeps/213을 참조하십시오.
+0
사실 내 질문에 여기에 링크되어 있지만 이것이 중요하지 않은 제안 (무시할 수있는 무료)인지 또는 통과 가능성이 높은지 여부는 확실하지 않았습니다. 나는 또한 (기이하게도)'final' 클래스에서 메소드에 대한 언급이 없다는 것을 알아 차렸다. 단순한 감독 이외에 다른 이유가 있다고 생각하십니까? –
+0
예, JDK9에 포함될 예정입니다. –
관련 문제
- 1. 스타일 시트를 적용 할 수없는 이유는 무엇입니까?
- 2. Java에서 내부 클래스의 메서드에 연결할 수없는 이유는 무엇입니까?
- 3. 인스턴스 변수에서 클래스의 정적 메서드에 액세스합니까?
- 4. 수퍼 클래스 메서드에 액세스 할 수없는 이유는 무엇입니까?
- 5. 정적 메서드가 인스턴스 메서드를 참조 할 수없는 이유는 무엇입니까?
- 6. 하위 클래스에 개체를 만들어 클래스의 protectd 메서드에 액세스 할 수 없거나 액세스 할 수없는 이유는 무엇입니까?
- 7. 클래스의 메서드에 대해이 AttributeError가 나타나는 이유는 무엇입니까?
- 8. 메소드에 대한 로컬 변수가 최종 선언 될 수없는 이유는 무엇입니까?
- 9. Java에서 메소드를 직렬화 할 수없는 이유는 무엇입니까?
- 10. 클래스에서 공용 메서드에 액세스 할 수없는 이유는 무엇입니까? (자바)
- 11. PHP에서 인스턴스 변수를 객체 배열로 선언 할 수없는 이유는 무엇입니까?
- 12. 공급자 클래스의 메서드에 액세스 할 수 없습니다. fff.navigateTo()를 사용할 수없는 이유는 무엇입니까?
- 13. ++ 또는 -을 JavaScript의 리터럴에 직접 적용 할 수없는 이유는 무엇입니까?
- 14. Jquery에서 100 % 너비로 애니메이션을 적용 할 수없는 이유는 무엇입니까?
- 15. 내 웹 페이지에서 CSS를 적용 할 수없는 이유는 무엇입니까?
- 16. final은 Java의 배열에 적용 할 수없는 이유는 무엇입니까?
- 17. 탭에 다른 textColor를 적용 할 수없는 이유는 무엇입니까?
- 18. extjs4의 내 자신의 클래스에 속성을 적용 할 수없는 이유는 무엇입니까?
- 19. 새로운 UIImageView에서 애니메이션을 적용 할 수없는 이유는 무엇입니까?
- 20. CSS에서 Textarea의 스타일을 적용 할 수없는 이유는 무엇입니까?
- 21. LambdaJ : select 절에 연산을 적용 할 수없는 이유는 무엇입니까?
- 22. 파이썬에서 인스턴스 .__ class__ 속성에 액세스 할 수없는 이유는 무엇입니까?
- 23. 콘솔 클래스의 객체를 만들 수없는 이유는 무엇입니까?
- 24. 내부 클래스의 외부 메서드에 액세스
- 25. 공용 static 메서드에 인스턴스 변수에 액세스하려면 어떻게합니까?
- 26. 최종 변수로 인스턴스 변수가 있습니까?
- 27. 클래스의 __metaclass__ 속성을 변경할 수없는 이유는 무엇입니까?
- 28. 다른 클래스의 메서드를 가져올 수없는 이유는 무엇입니까?
- 29. Python - 다른 인스턴스 메서드에서 호출 할 때이 인스턴스 메서드에 괄호가 필요하지 않은 이유는 무엇입니까?
- 30. 내 클래스의 함수를 인라인 할 수없는 이유는 무엇입니까?
메아리에서 메서드에서 varargs를 사용하는 것이 안전하면 SuppressWarnings 주석을 사용하여 컴파일러에서 불평을 멈추게 할 것입니다. 그러나 왜 효과적으로이 최종 주석을 사용할 수 없는지 잘 모르겠습니다. – jjm
@jjm 올바르게 호출했다면, varargs 메소드에서'@SuppressWarnings ("unchecked") "을 사용하면 해당 위치에서 경고가 표시되지 않지만 그 메소드가 사용되는 곳에서는 경고가 표시됩니다. 따라서 @ SafeVarargs에 대한 _ _ _ _ _ _ _ _ _ _ _ –