【发布时间】:2010-11-28 08:19:17
【问题描述】:
[javac] C:\ws\galileo\test\Cacheable.java:13: incompatible types
[javac] found : com.io.CacheType
[javac] required: com.io.CacheType
[javac] public CacheType id() default CacheType.COMMON;
我真的不明白这个。 我有一个项目,我正在为 Spring 自定义构建缓存拦截器。它只是通过缓存名称查看指向 EhCache 并使用 aop-autoproxy 加载 CacheableAspect(这是我的缓存拦截器)。现在,当我在注释中使用默认值时,ANT 给出了下面的编译器错误。我尝试更新到最新的 JDK(我现在使用 1.6 16)并在 ant 脚本中设置源/目标级别,但没有成功。当我删除默认值并强制所有区域指定一个值时,它会在 ant 中正常编译。
它总是在 Eclipse 中工作,我的单元测试使用以前的默认值完美运行。
什么给了?我尝试构建一个项目(没有弹簧),它简单地用 ant 呼应配置,并在 ant 中编译(和在 eclipse 中)。
这告诉我可能是 Spring 自动代理?但是为什么编译器不给我生成的类型名称呢? GRRRR。有什么想法吗?
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.io.CacheType;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Cacheable {
public CacheType value() default Cachetype.COMMON;
}
public enum CacheType {
COMMON("common"),
PERSISTENT("persistent";
private String cache;
CacheType(String cache) {
this.cache = cache;
}
public String cache() {
return this.cache;
}
}
【问题讨论】:
标签: java spring ant annotations aop