dlaczego ten kod nie kompiluje się z javac, ale nie ma błędów w zaćmieniu?
następujący kod:
<code>@Retention(RetentionPolicy.RUNTIME) @Target( { ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE }) @Constraint(validatedBy = { MinTimeIntCoConstraintValidator.class, MinTimeIntCoListConstraintValidator.class, MinTimeDoubleCoConstraintValidator.class, MinTimeDoubleCoListConstraintValidator.class, }) @Documented public @interface MinTimeValueCo { int value(); String message() default "value does not match minimum requirements"; Class<?>[] groups() default { }; Class<? extends Payload>[] payload() default {}; } </code>
skompilowany w eclipse, ale nie kompiluje się w kompilatorze sun / oracle:
<code>> MinTimeValueCo.java:19: illegal start of expression > [javac] }) > [javac] ^ > [javac] 1 error </code>
Stało się tak z powodu przecinka poMinTimeDoubleCoListConstraintValidator.class,
.
kiedy usunąłem przecinek, działa dobrze:
<code>@Constraint(validatedBy = { MinTimeIntCoConstraintValidator.class, MinTimeIntCoListConstraintValidator.class, MinTimeDoubleCoConstraintValidator.class, MinTimeDoubleCoListConstraintValidator.class }) </code>
Używam jdk 1.6.0.10.
Czy wiesz, dlaczego jest to nielegalne i kompilowane w zaćmieniu?