相关疑难解决方法(0)

为什么这段代码没有用javac编译但在eclipse中没有错误?

以下代码:

@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 {};
}
Run Code Online (Sandbox Code Playgroud)

在eclipse中编译但无法在sun/oracle编译器中编译:

> MinTimeValueCo.java:19: illegal start of expression
>     [javac]       })
>     [javac]       ^
>     [javac] 1 error
Run Code Online (Sandbox Code Playgroud)

这是因为之后的逗号MinTimeDoubleCoListConstraintValidator.class,.

当我删除逗号时它工作正常:

@Constraint(validatedBy = {
        MinTimeIntCoConstraintValidator.class, 
        MinTimeIntCoListConstraintValidator.class,
        MinTimeDoubleCoConstraintValidator.class, 
        MinTimeDoubleCoListConstraintValidator.class
        })
Run Code Online (Sandbox Code Playgroud)

我使用的是jdk 1.6.0.10.
你知道为什么这是非法的并且在eclipse中编译吗?

java eclipse compiler-construction javac

6
推荐指数
1
解决办法
832
查看次数

标签 统计

compiler-construction ×1

eclipse ×1

java ×1

javac ×1