当我写这行时,我正在编写代码来合并.pdf文档:
PDFmerger.mergeDocuments();
当我写这篇文章时,Java告诉我,mergeDocuments()
类型的方法PDFMergerUtility
已被弃用,并告诉我添加这一行:
@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);
答案 0 :(得分:0)
如初始错误消息所示,基础问题是mergeDocuments()
PDFMerger
方法已被弃用。这意味着供应商认为此方法已过时,可能会在将来将其删除(但尚未作为现有代码库的优势),并认为您不应该使用它 - 尤其是在新编写的代码中。
所以正确的修复是引用PDFMerger
的文档,并找出你应该做的事情。 (对已弃用元素的正确文档应包括替换元素的说明。)
添加@SuppressWarnings()
注释是一个快速修复"保持特定警告不会使您的构建日志混乱,或者在"干净构建"策略,导致构建被视为破坏。但它很少是正确的事情。对于那些删除已弃用元素的使用并不实际的情况,它存在。
你的IDE通过方法名称引人注目,提醒它实际上已被弃用 - 即应该重写这段代码。