抑制警告

时间:2017-07-17 19:30:06

标签: java pdfbox

当我写这行时,我正在编写代码来合并.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);

1 个答案:

答案 0 :(得分:0)

如初始错误消息所示,基础问题是mergeDocuments() PDFMerger方法已被弃用。这意味着供应商认为此方法已过时,可能会在将来将其删除(但尚未作为现有代码库的优势),并认为您不应该使用它 - 尤其是在新编写的代码中。

所以正确的修复是引用PDFMerger的文档,并找出你应该做的事情。 (对已弃用元素的正确文档应包括替换元素的说明。)

添加@SuppressWarnings()注释是一个快速修复"保持特定警告不会使您的构建日志混乱,或者在"干净构建"策略,导致构建被视为破坏。但它很少是正确的事情。对于那些删除已弃用元素的使用并不实际的情况,它存在。

你的IDE通过方法名称引人注目,提醒它实际上已被弃用 - 即应该重写这段代码。