使用不推荐使用的类的Java不推荐使用的类 - 我可以关闭编译器警告吗?

时间:2010-08-10 15:02:00

标签: java netbeans compiler-warnings

我正在努力弃用一组Java类,因此不再使用它们。我不想关闭不推荐使用的编译器警告,但我发现如果我的一个已弃用的类导入另一个已弃用的类,我也会收到警告。我不想修改我弃用的代码,但我也不希望这些情况发出警告。有没有办法(a)注释/注释代码以禁用警告(b)在这些情况下关闭编译器警告?我正在使用NetBeans,所以如果有一种特定于NetBeans的方式,那也是可行的。

这是一个简单的例子:

头等舱:

/**
 * @deprecated No longer in use.
 **/
@Deprecated
public class OldSubClass {
}

第二课:

import com.old.package.OldSubClass; // Don't want this to create a warning

/**
 * @deprecated No longer in use.
 **/    
@Deprecated
public class OldClass {
       // code that makes use of OldSubClass that I don't want to change ...
       // Any methods that use OldSubClass are also deprecated ...
}

好的,这是允许我重现问题的最低限度(即使启用了@SupressWarnings:

母亲班:

import another.pack.ChildClass;

@SuppressWarnings("deprecation")
public class MotherClass {
}

儿童班:

package another.pack;

/**
 * @deprecated
 */
public class ChildClass {
}

请注意,它是JavaDoc @deprecated标记,甚至允许编译器抛出警告。如果我只使用@Deprecated注释,我永远不会收到警告(即使没有supress)。

2 个答案:

答案 0 :(得分:3)

您可以使用此其他注释:

  

@SuppressWarnings(“弃用”)

您只能将此注释放在母班中。导入OldClass时将保留警告,但OldSubClass的“递归警告”将被忽略。

答案 1 :(得分:0)

NetBeans使用javac(来自JDK 7)来确定何时何地显示这样的警告,因此任何适用于jdk7/bin/javac的内容都应该在IDE的编辑器中以相同的方式工作。