-
Bug
-
Resolution: Duplicate
-
P5
-
None
-
6
-
generic
-
generic
==> A.java <==
package test;
/**
* @author brandon-enochs
*/
public class A {
@X
public void foo() {
}
}
==> XAnnotationProcessor.java <==
import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedOptions;
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
/**
* @author brandon-enochs
*/
@SupportedAnnotationTypes("*")
@SupportedOptions({})
@SupportedSourceVersion(SourceVersion.RELEASE_6)
public class XAnnotationProcessor extends AbstractProcessor {
// ------------------------ INTERFACE METHODS ------------------------
// --------------------- Interface Processor ---------------------
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
return false;
}
}
==> X.java <==
package test;
/**
* @author brandon-enochs
*/
public @interface X {
Y y() default Y.A;
String a() default Z.BAR;
}
==> Y.java <==
package test;
/**
* @author brandon-enochs
*/
public enum Y {
A,
B,
C
}
==> Z.java <==
package test;
/**
* @author brandon-enochs
*/
public class Z {
public static final String BAR = "Bar";
}
$ javac XAnnotationProcessor.java
$ javac -processor XAnnotationProcessor A.java X.java Y.java Z.java
X.java:8: incompatible types
found : test.Y
required: test.Y
Y y() default Y.A;
^
X.java:10: incompatible types
found : java.lang.String
required: java.lang.String
String a() default Z.BAR;
^
2 errors
$ javac A.java X.java Y.java Z.java
$
package test;
/**
* @author brandon-enochs
*/
public class A {
@X
public void foo() {
}
}
==> XAnnotationProcessor.java <==
import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedOptions;
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
/**
* @author brandon-enochs
*/
@SupportedAnnotationTypes("*")
@SupportedOptions({})
@SupportedSourceVersion(SourceVersion.RELEASE_6)
public class XAnnotationProcessor extends AbstractProcessor {
// ------------------------ INTERFACE METHODS ------------------------
// --------------------- Interface Processor ---------------------
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
return false;
}
}
==> X.java <==
package test;
/**
* @author brandon-enochs
*/
public @interface X {
Y y() default Y.A;
String a() default Z.BAR;
}
==> Y.java <==
package test;
/**
* @author brandon-enochs
*/
public enum Y {
A,
B,
C
}
==> Z.java <==
package test;
/**
* @author brandon-enochs
*/
public class Z {
public static final String BAR = "Bar";
}
$ javac XAnnotationProcessor.java
$ javac -processor XAnnotationProcessor A.java X.java Y.java Z.java
X.java:8: incompatible types
found : test.Y
required: test.Y
Y y() default Y.A;
^
X.java:10: incompatible types
found : java.lang.String
required: java.lang.String
String a() default Z.BAR;
^
2 errors
$ javac A.java X.java Y.java Z.java
$
- duplicates
-
JDK-6512707 "incompatible types" after (unrelated) annotation processing
-
- Closed
-