2011-12-12 29 views
9

我正在导入一个已被弃用的类,我不得不使用它。在导入语句时忽略弃用类型警告

我想通过使用@SuppressWarnings("deprecation")注释来抑制不推荐的错误。

按上标注的评论:

作为一个风格问题,程序员应该始终使用此批注上 最深层的元素它是有效的。如果你想 以特定的方法抑制警告,你应该注释该方法,而不是它的类。

所以我显然不希望其注释类,从而对任何型我的类使用抑制废弃警告,但我也想用import语句来避免打字的完全限定类型名称,它跨越我的整个监视器,每次使用弃用的类。

我觉得我要像做注解import语句@SuppressWarnings(不可能),或在@SuppressWarnings注解指定哪些类型忽视的警告(如@SuppressWarnings("deprecation", "fully.qualified.type.name")

我想向编译器指示“没关系,如果我使用这个,只有这个,被弃用的类,被其简单名称引用,在这个其他类中的任何地方,以及任何其他类别,我参考你应该让我知道“

有什么像这样可用?

+0

它是完全合格的名称跨越整个显示器?我想知道它为什么被摧毁...... – corsiKa

+0

这是一个很大的项目......它应该被分成几个小项目,但那不是我的部门。 –

+3

你只是被编译器警告所困扰吗? – Paul

回答

4

解决此问题的一种方法是执行以下操作,假设您可以扩展Deprecated类。

import comp.DeprecatedClass; 

@SuppressWarnings("deprecation") public class MyDeprecatedClass extends DeprecatedClass{ } 

然后,您可以使用您的版本,而不必担心警告。

+0

我想这是一个选项,只要该类不是最终的,你不介意添加一个新的类层次结构层。看起来像一个相当极端的解决方案,但我。 另外:如果你这样做,没有什么能阻止你在其他地方错误地重新使用MyDeprecatedClass并且看不到警告消息。 –

+0

当使用Eclipse时,我可以将鼠标悬停在MyDeprecatedClass上,它会显示“@SuppressWarnings(value = {”deprecation“})”,所以它会给你一个暗示你以微妙的方式压制它。尽管我同意这是极端的,但你可以在你想要使用它的地方做到这一点: @SuppressWarnings(“deprecation”)private class MyDeprecatedClass extends comp.DeprecatedClass {} 不幸的是,这不是一个漂亮的工作。 – Jyro117