论坛首页 入门技术论坛

Linux 下 JDK 5.0 下 @Override 标注问题

浏览 4987 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-07-28  
首次在linux 上开发  ,原来在widnows 下编译运行正常的 工程 ,转到linux 后 ,发现如果使用jdk5 编译运行时 使用了 @Override 标注 接口方法 会报错,编译不能通过,

测试代码 :
public class Thread extends SuperThread {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new Runnable() {
			/**
			 * this block can not be compiled successfully.
			 * The IDE supports the below information:
			 * 
			 *  Multiple Markers this line
			 *  -The method run() of type new Runnable(){}must override a superclass method
			 *  -implements java.lang.Runnable.run
			 */
			@Override
			public void run() {
				// TODO Auto-generated method stub

			}

		};
	}
	/**
	 * this method can be compiled successfully.
	 */
	@Override
	public void test() {
		// TODO Auto-generated method stub

	}


widows 下的jdk以及 linux 下 1.6的jdk 不存在该问题 ,从提示中可以看出  linux 下1.5的jdk @Override 这个annotation
并不把接口认为是超类 。。。也就是说 如果在1.5下要使用@Override 这个annotation 必须保证 被标注方法来源于class 而不是interface .具体原因不明,或许是jdk 1.5 在linux 下的一个 bug ,个人感觉这点已经给我带来了不便 ,如要用@Override 标注检测 必须升级到jdk 1.6 ,但要升到1.6谈何容易,升到1.5就已经阻力重重了。。 ^_^
   发表时间:2008-07-28  
我投新手贴, 你看看你java compiler的设置或者应用jdk的设置
0 请登录后投票
   发表时间:2008-07-28  
就是哦,是不是设置成1.4的了?
0 请登录后投票
   发表时间:2008-07-28  
回帖前请将内容看清楚,如果注释没看就轻易认为这是个很简单的问题 ,那只能说你在给别人下结论的时候也给自己下了结论
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics