给出以下自定义注释
[1,2,3,4] true
[1,2,1,4] false, since the array has value '1' twice
在类代码中的某处,它用于字段:
PdfDocument pdfDoc = new PdfDocument(new PdfWriter("links.pdf"));
Document d = new Document(pdfDoc);
// example 1
Paragraph p = new Paragraph()
.Add(new Link("Link with border", PdfAction.CreateURI("http://www.google.com")).SetBorder(Border.NO_BORDER))
.SetBorder(Border.NO_BORDER); // no border on the paragraph
d.Add(p);
// example 2
PdfLinkAnnotation linkA = new PdfLinkAnnotation(new Rectangle(0, 0, 0, 0));
linkA.SetHighlightMode(PdfLinkAnnotation.HIGHLIGHT_INVERT);
//This would give underline instead of borders
//linkA.SetBorderStyle(PdfLinkAnnotation.STYLE_UNDERLINE);
linkA.SetAction(PdfAction.CreateURI("http://www.google.com"));
Link link = new Link("Please no borders", linkA);
d.Add(new Paragraph(link));
pdfDoc.Close();
是否可以将someID'方法age()的返回值从" someValue":更改为其他内容或换句话说其他字符串值?所以当有人获得某些ID&#39时; s通过反射注释,然后调用注释的age()方法获得不同的值?
答案 0 :(得分:0)
是的,这是可能的,但不是纯粹的反思。如果你想更改对象而不用另一个对象替换它,你将不得不使用像ASM这样的字节码操作库(请参阅Lombok中的完成方式)。但这种方式会非常复杂。
如果您被允许用代理替换abject,甚至可以使用纯反射+方面引擎(如何Spring does it with help of CGLIB)。