gpt4 book ai didi

java - 下面的方法在Java中如何工作?

转载 作者:行者123 更新时间:2023-12-02 13:11:05 24 4
gpt4 key购买 nike

我正在执行以下方法,但不明白我的前辈是如何设计的。

public LinkedHashMap<String,IPDFField> getFields() {
LinkedHashMap<String, IPDFField> fields = new LinkedHashMap<String, IPDFField>();

//^field1c^lastName^nameSuffix
// Line One
addField(fields,"1_1", new PDFField(27+X_OFF, 718+Y_OFF, new FieldWidthValidation(134F, "^field1_1^firstName^middleName^lastName^nameSuffix")) { //PI tab
@Override
public String getPrintableText(Object o) {
Disposition d = (Disposition) o;
return dataFormattingService.NormalizedPersonName(
d.getFirstName(), d.getMiddleName(), d.getLastName(), d.getNameSuffix()
);
}
});
} //getFileds method ends

从上面的方法中,他们调用了下面的 addField 方法,但是 AddField 方法中的 getPrintableText 是什么

private void addField(HashMap<String, IPDFField> fields, String fieldKey, IPDFField field) {

field.setFieldKey(fieldKey);
if (field.getValidation() != null) {
field.getValidation().setField(field);
}

fields.put(fieldKey, field);

}

上面不是完整的代码,主要功能是我们正在尝试将内容写入pdf,但我不想粘贴我的完整代码,我只需要对上述逻辑进行解释

最佳答案

      addField(/**/, new PDFField(/**/) { 
@Override
public String getPrintableText(Object o) {
// ...
}
});

这里发生的是创建一个匿名内部类

此匿名内部类扩展了 PDFField 类,并重新定义了 PDFField 类中定义的方法 getPrintableText 的行为。

<小时/>

sorry one more doubt addFiled we have two methods in above , one is anonymous and another is private method,may i know if they are using annonymous class then they could have declared different method name for addField which is private above? – adithyan .p

我不确定我是否理解该评论...

匿名类是

   new PDFField(/**/) { 
@Override
public String getPrintableText(Object o) {
// ...
}
}

并将其作为参数传递给方法 addField()

对于获取匿名类实例作为参数的方法的可见性没有限制。

关于java - 下面的方法在Java中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43955097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com