때 미리 컴파일 재스퍼 컴파일러와 JSP를 한 후, 나는 javac
경고 다음과 같이 볼 수있는 자바 컴파일러 (Tomcat을 사용) (내가 가진 javac
의 -Xlint
플래그 사용) : 이제Jasper에서 JSP에 대한 Javac 경고를 제거하면 Java 소스 파일이 생성 되었습니까?
warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
_jspx_dependants.add("/some-jsp.jspf");
, 그것의 "단지 경고 "라고 말하면서 깨끗한 구조물을 좋아하기 때문에 당연히 경고를 없애고 싶다. 물론, 나는 JSP 컴파일을 위해 -Xlint
을 사용할 수 없지만, -Xlint
은 좋은 물건이다.
경고 예에서 문제는 일반 구문이 사용되지 않는다는 것입니다. List<String>
대신 List
만 있습니다. Jasper를 작성하는 좋은 사람들은 Java5 이전의 세계에서 잠겨있는 불행한 영혼을 보호해야한다는 것을 알고 있습니다. 괜찮습니다.하지만 왜이 경고를 받아야합니까?
은 재스퍼 JSP 컴파일러에 의해 생성 된 자바 소스 코드에 의해 발생 javac의 경고를 제거하기 위해 잘 알려진 방법이 있습니까? 저는 IDE 전용 솔루션에 관심이 없습니다. (특정 IDE를 사용하는 일부 사람들에게는 부분적인 해결책이 될 수 있습니다.) 나는 일반적으로 적용 가능한 해결책을 찾고있다.
은 재스퍼 소스 코드의 검사는 일반적인 구문 방출을 야기하는 어떤 "자바 5+"스위치를 공개하지 않았다. 명확하게 우아한 일반적인 구문의 주입을위한 희망 잃은 하드 코드 된 코드를 보여줍니다
apache-tomcat-6.0.18-src/java/org/apache/jasper/compiler/Generator.java:494: out.printin("_jspx_dependants = new java.util.ArrayList(");
: 사실, 반대로 나는이 발견했다.
이것은 좋은 생각이지만, JSP 코드에 해당 유형의 경고를 생성하는 스크립틀릿이 있다고 가정합니다 (저는 스크립틀릿의 팬이 아니지만 일부는 있다고 말하려합니다). 나는 그러한 경고를 가리고 싶지 않다. 내 코드의 경고에 대해 알고 싶습니다. 간단히 말하면 모든 검사되지 않은 경고를 끄는 것은 경우에 따라서는 너무 거칠 수있는 것처럼 보입니다. –
물론이 예제에서는 특정 경고 만 해제 할 수 있습니다. -Xlint : -nnn 플래그가 많이 필요할 수도 있지만 예기치 않은 경고가 표시됩니다. –
어쩌면 나는 당신의 해결책이 특정 경고/인스턴스/생략을 허용하는지, 아니면 특정 유형의 모든 경고 /를 허용하는지 이해하지 못할 수도 있습니다. 내 코드와 생성 된 Java 코드가 모두 "검사되지 않음"경고를 발생시키는 것으로 가정합니다. Jasper 코드에서 경고를 무시하고 싶지만 내 코드에서 경고를보고 싶습니다. 솔루션에서 다음과 같이 표현할 수 있습니까? "특정 미확인 경고는 비활성화하고 다른 미확인 경고는 비활성화하지 않습니까?" 나는 "-Xlint : -unchecked"가 모든 경고를 비활성화 할 것이라고 생각한다. –