[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 fine.
В Eclipse это всегда работало, у меня были модульные тесты, которые отлично работали с предыдущим значением по умолчанию.
Что дает? Я попытался создать проект (без пружины), который просто отражал конфигурацию с помощью ant, и он компилировался в ant fine (и в eclipse).
, который говорит мне, МОЖЕТ, это может быть пружинное автоматическое проксирование как-то? но тогда почему компилятор не дал бы мне сгенерированное имя типа? 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;
}
}