抑制警告

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);

如初始错误消息中所示,根本问题是 PDFMergermergeDocuments() 方法已弃用。这意味着供应商认为此方法已过时,将来可能会删除它(但还没有这样做,作为现有代码库的恩典),并且认为您不应该使用它 - 特别是在新编写的代码中。

因此 正确的 修复是参考 PDFMerger 的文档并找出您应该做的事情。 (不推荐使用的元素的正确文档应包括有关已替换该元素的说明。)

添加 @SuppressWarnings() 注释是 "quick fix" 防止该特定警告使您的构建日志混乱,或者在 "clean build" 政策的情况下,导致构建被视为损坏.但这很少是正确的做法。它适用于删除已弃用元素的使用根本不切实际的情况。

您的 IDE 在方法名称上加上了删除线,以提醒您它实际上已被弃用 - 即应该重写这段代码。