warum wird dieser code nicht mit javac kompiliert, hat aber keine fehler in eclipse?
den folgenden Code:
<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>
In Eclipse kompiliert, aber in Sun / Oracle Compiler nicht kompilierbar:
<code>> MinTimeValueCo.java:19: illegal start of expression > [javac] }) > [javac] ^ > [javac] 1 error </code>
Dies geschah aufgrund des Kommas danachMinTimeDoubleCoListConstraintValidator.class,
.
Wenn ich das Komma entferne, funktioniert es einwandfrei:
<code>@Constraint(validatedBy = { MinTimeIntCoConstraintValidator.class, MinTimeIntCoListConstraintValidator.class, MinTimeDoubleCoConstraintValidator.class, MinTimeDoubleCoListConstraintValidator.class }) </code>
Ich benutze JDK 1.6.0.10.
Wissen Sie, warum dies illegal ist und in Eclipse kompiliert?