자바 주석도 함부로 달 수 없게 되네요.
HTML 4.01에 어긋나는 자바독은 에러를 발행하는데 그 옵션을 끄는 방법은 -Xdoclint:none 이라고 합니다.
from: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
joda-time 을 만드신 분의 블로그네요.
http://blog.joda.org/search/label/jodatime
자바 주석도 함부로 달 수 없게 되네요.
HTML 4.01에 어긋나는 자바독은 에러를 발행하는데 그 옵션을 끄는 방법은 -Xdoclint:none 이라고 합니다.
from: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
joda-time 을 만드신 분의 블로그네요.
http://blog.joda.org/search/label/jodatime
b128로 공개되었습니다. beta벗어나서 RC(Release Candidate) 버전입니다.
3/14 정식버전 출시예정이라고 합니다. 이제 한 달 정도 남았네요.
kenuui-Retina-MacBook-Pro:~ kenu$ java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b128)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b69, mixed mode)
스프링4 빌드할 경우 jdk1.8이 필요합니다.
https://jdk8.java.net/download.html
아직은 JDK8의 정식 버전이 나오지 않아서 이 화면을 보기 쉽지 않습니다.
eclipse 개발중인 다른 버전을 다운로드 받아서 JDK8을 테스트할 수 있습니다.
efxclipse는 e(fx)clipse 즉, JavaFX 개발용 패키지들이 포함된 이클립스입니다. 그래서 용량이 350MB 이상입니다.
http://downloads.efxclipse.org/eclipse-java8/
http://docs.oracle.com/javase/tutorial/java/javaOO/examples/RosterTest.java |
http://docs.oracle.com/javase/tutorial/java/javaOO/examples/Person.java |
Lambda Expression 이라고 얘기합니다. jdk8에 포함된 기능입니다.
인터페이스의 메소드가 하나일 때, 이것에 대한 인터페이스를 만들고, 익명 클래스로 만들어서 처리하는 것을 단순화 시켰습니다.
http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
예제가 잘 되어 있습니다.
최종 결과는 다음과 같은 코드입니다. C++에서 보던 -> 기호 때문에 당황스럽군요.
printPersons( roster, (Person p) -> p.getGender() == Person.Sex.MALE && p.getAge() >= 18 && p.getAge() <= 25
);
람다 표현식을 사용하기 전의 코드는 다음과 같이 익명 클래스로 되어 있습니다.
printPersons(
roster,
new CheckPerson() {
public boolean test(Person p) {
return p.getGender() == Person.Sex.MALE
&& p.getAge() >= 18
&& p.getAge() <= 25;
}
}
);
interface CheckPerson {
boolean test(Person p);
}
확실히 interface 파일 하나 줄이고, 코드를 1/3로 줄이는 효과가 있습니다.
람다 표현식을 사용하려면 아직 개발자 미리보기 버전을 설치해야 합니다.
갑자기 이 노래가 생각납니다.
Lambada
맥에서 java8 현재 RC1을 사용하고 있는데, jsp가 컴파일이 안 되는 이슈가 있네요.
type Exception report
message Unable to compile class for JSP: An error occurred at line: 1 in the generated java file The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files Stacktrace:
description The server encountered an internal error (Unable to compile class for JSP: An error occurred at line: 1 in the generated java file The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files Stacktrace:) that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 1 in the generated java file
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.28 logs.
톰캣을 선택하고 Edit... 버튼을 클릭합니다.
JRE: 항목이 Java SE 8로 되어 있군요. SE(시)8
Workbench default JRE 는 이클립스 워크스페이스에서 기본 지원하는 버전을 사용하는데, 그냥 맘편하게 Java SE 7 으로 지정하는 것도 나쁘지 않습니다. 기본환경이 언제 저를 배신할 지 모르기 때문이죠.
정식 Java SE 8이 나오면 제대로 잘 되기를 바래봅니다.
아, 오라클