小编Luk*_*kas的帖子

需要重载operator <和null检查

我在c#中重载了lessthan-operator,我想知道这是否需要检查null.您可以在下面找到一个示例:

public static bool operator <(MyClass x, MyClass y)
{
  if (x == null && y == null)
  {
    return false;
  }
  if (x == null)
  {
    return true; //false?
  }
  if (y == null)
  {
    return false; //true?
  }
  return x.Value < y.Value;
}
Run Code Online (Sandbox Code Playgroud)

或者这是正确的:

public static bool operator <(MyClass x, MyClass y)
{
  return x.Value < y.Value;
}
Run Code Online (Sandbox Code Playgroud)

我没有找到任何关于此的指示.但也许我错过了什么.

c# operator-overloading

14
推荐指数
2
解决办法
6969
查看次数

PDFBox:如何"压扁"PDF格式?

如何使用PDFBox"展平"PDF表单(删除表单字段但保留字段文本)?

这里回答了同样的问题:

快速执行此操作的方法是从acrofrom中删除字段.

为此,您只需要获取文档目录,然后获取acroform,然后从此acroform中删除所有字段.

图形表示与注释链接并保留在文档中.

所以我写了这段代码:

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.apache.pdfbox.pdmodel.interactive.form.PDField;

public class PdfBoxTest {
    public void test() throws Exception {
        PDDocument pdDoc = PDDocument.load(new File("E:\\Form-Test.pdf"));
        PDDocumentCatalog pdCatalog = pdDoc.getDocumentCatalog();
        PDAcroForm acroForm = pdCatalog.getAcroForm();

        if (acroForm == null) {
            System.out.println("No form-field --> stop");
            return;
        }

        @SuppressWarnings("unchecked")
        List<PDField> fields = acroForm.getFields();

        // set the text in the form-field <-- does work
        for (PDField field : fields) {
            if (field.getFullyQualifiedName().equals("formfield1")) {
                field.setValue("Test-String");
            } …
Run Code Online (Sandbox Code Playgroud)

java pdf-form pdfbox

8
推荐指数
5
解决办法
2万
查看次数

标签 统计

c# ×1

java ×1

operator-overloading ×1

pdf-form ×1

pdfbox ×1