以下代码使用Eclipse编译:
# Parse out the data and write back to file
for line in data:
f.write(' '.join(map(str, line)) + "\n")
但它与Oracle的javac(版本1.8.0_141)没有关系,会产生以下错误:
@Retention(RetentionPolicy.CLASS)
@Target({ TYPE_USE })
public @interface Nullable {
// This is org.eclipse.jdt.annotation.Nullable
}
class SomeClass {
private final SomeOtherClass.@Nullable Inner b;
}
我敢打赌,javac和Eclipse的编译器在处理TYPE_USE方面有所不同,但我找不到一种解决方法,以便在我的代码中保留注释(应该在Eclipse和javac中编译)。关于此事的任何线索?
答案 0 :(得分:0)
感谢Stephan Herrmann,我发现了这个问题。 javac构建使用了我们的META-INF / MANIFEST.MF文件中声明的org.eclipse.jdt.annotation版本:1.1.0。但是这个版本是错误的,并且在使用Eclipse的编译器时没有捕获,因为代码是针对版本2.0.0(Eclipse Luna中的jdt附带)编译的。为javac构建指定版本2.0.0解决了这个问题。