抑制警告
Suppression Warning
当我写这行时,我正在编写合并 .pdf 文档的代码:
PDFmerger.mergeDocuments();
当我写的时候,Java 告诉我 The method mergeDocuments()
from the type PDFMergerUtility
is deprecated,并告诉我添加这一行:
@SuppressWarnings("deprecation")
之后,命令 mergeDocuments();
被删除。该命令仍然有效,但我想问:为什么我的代码划掉了线?代码仍然有效,但我不知道为什么会这样。顺便说一句,我正在使用 PDFBox 合并两个不同的 pdf。完整的代码如下(想象一下在文本 .mergedocuments() 中有一行 运行):
JButton btnMerge = new JButton("Merge");
btnMerge.addActionListener(new ActionListener() {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e) {
try {
PDDocument doc1 = PDDocument.load(rearrange[0]);
PDDocument doc2 = PDDocument.load(rearrange[1]);
PDDocument doc3 = PDDocument.load(rearrange[2]);
//Instantiating PDFMergerUtility class
PDFMergerUtility PDFmerger = new PDFMergerUtility();
String finalname = name.substring(0, 8);
PDFmerger.setDestinationFileName(path.replace(name, finalname+"_Pin Plug List.pdf"));
PDFmerger.addSource(rearrange[0]);
PDFmerger.addSource(rearrange[1]);
PDFmerger.addSource(rearrange[2]);
PDFmerger.mergeDocuments();
doc1.close();
doc2.close();
doc3.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnMerge.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnMerge.setBounds(12, 261, 388, 50);
contentPane.add(btnMerge);
如初始错误消息中所示,根本问题是 PDFMerger
的 mergeDocuments()
方法已弃用。这意味着供应商认为此方法已过时,将来可能会删除它(但还没有这样做,作为现有代码库的恩典),并且认为您不应该使用它 - 特别是在新编写的代码中。
因此 正确的 修复是参考 PDFMerger
的文档并找出您应该做的事情。 (不推荐使用的元素的正确文档应包括有关已替换该元素的说明。)
添加 @SuppressWarnings()
注释是 "quick fix" 防止该特定警告使您的构建日志混乱,或者在 "clean build" 政策的情况下,导致构建被视为损坏.但这很少是正确的做法。它适用于删除已弃用元素的使用根本不切实际的情况。
您的 IDE 在方法名称上加上了删除线,以提醒您它实际上已被弃用 - 即应该重写这段代码。
当我写这行时,我正在编写合并 .pdf 文档的代码:
PDFmerger.mergeDocuments();
当我写的时候,Java 告诉我 The method mergeDocuments()
from the type PDFMergerUtility
is deprecated,并告诉我添加这一行:
@SuppressWarnings("deprecation")
之后,命令 mergeDocuments();
被删除。该命令仍然有效,但我想问:为什么我的代码划掉了线?代码仍然有效,但我不知道为什么会这样。顺便说一句,我正在使用 PDFBox 合并两个不同的 pdf。完整的代码如下(想象一下在文本 .mergedocuments() 中有一行 运行):
JButton btnMerge = new JButton("Merge");
btnMerge.addActionListener(new ActionListener() {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e) {
try {
PDDocument doc1 = PDDocument.load(rearrange[0]);
PDDocument doc2 = PDDocument.load(rearrange[1]);
PDDocument doc3 = PDDocument.load(rearrange[2]);
//Instantiating PDFMergerUtility class
PDFMergerUtility PDFmerger = new PDFMergerUtility();
String finalname = name.substring(0, 8);
PDFmerger.setDestinationFileName(path.replace(name, finalname+"_Pin Plug List.pdf"));
PDFmerger.addSource(rearrange[0]);
PDFmerger.addSource(rearrange[1]);
PDFmerger.addSource(rearrange[2]);
PDFmerger.mergeDocuments();
doc1.close();
doc2.close();
doc3.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnMerge.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnMerge.setBounds(12, 261, 388, 50);
contentPane.add(btnMerge);
如初始错误消息中所示,根本问题是 PDFMerger
的 mergeDocuments()
方法已弃用。这意味着供应商认为此方法已过时,将来可能会删除它(但还没有这样做,作为现有代码库的恩典),并且认为您不应该使用它 - 特别是在新编写的代码中。
因此 正确的 修复是参考 PDFMerger
的文档并找出您应该做的事情。 (不推荐使用的元素的正确文档应包括有关已替换该元素的说明。)
添加 @SuppressWarnings()
注释是 "quick fix" 防止该特定警告使您的构建日志混乱,或者在 "clean build" 政策的情况下,导致构建被视为损坏.但这很少是正确的做法。它适用于删除已弃用元素的使用根本不切实际的情况。
您的 IDE 在方法名称上加上了删除线,以提醒您它实际上已被弃用 - 即应该重写这段代码。