[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 (который является моим кэширующим intercepter). Теперь, когда я использую значение по умолчанию в аннотации, ANT дает мне ошибку компилятора ниже. Я попробовал обновление до последнего JDK (теперь я на 1.6 16) и устанавливаю исходные/целевые уровни в ANT script, но не добился успеха. Когда я удаляю значение по умолчанию и заставляю все области указывать значение, оно компилируется в ANT fine.
Он всегда работал в Eclipse, у меня были модульные тесты, которые отлично сочетались с предыдущим значением по умолчанию.
Что дает? Я попытался создать проект (no spring), который просто повторил конфигурацию с помощью ANT и скомпилировал его в ANT fine (и в eclipse).
который говорит мне MAYBE, это может быть как-то w872 > автопроксирование? но тогда почему компилятор не дал мне сгенерированное имя типа? 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;
}
}