我正在努力弃用一组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)。
答案 0 :(得分:3)
您可以使用此其他注释:
@SuppressWarnings(“弃用”)
您只能将此注释放在母班中。导入OldClass时将保留警告,但OldSubClass的“递归警告”将被忽略。
答案 1 :(得分:0)
NetBeans使用javac(来自JDK 7)来确定何时何地显示这样的警告,因此任何适用于jdk7/bin/javac
的内容都应该在IDE的编辑器中以相同的方式工作。