在与同行的讨论中,我们提出应该考虑对所有类级变量使用自动属性...包括私有变量.
所以除了像这样的公共财产:
public int MyProperty1 { get; set; }
Run Code Online (Sandbox Code Playgroud)
我们的私有类级变量如下所示:
private int MyProperty2 { get; set; }
Run Code Online (Sandbox Code Playgroud)
代替:
private int _myProperty2;
Run Code Online (Sandbox Code Playgroud)
关于为什么有人想要这样做但我无法决定我是否愿意接受这一点是因为我自己内部洗脑以及如何将我的代码写入相同的编程标准和命名惯例使用了10年,或者因为我以前从未见过这种情况(因为某种原因).
我知道这是额外的代码输入,但说实话,在使用自动属性时,由于'prop'和'propg'片段,我认为我没有输入它所以它设置起来非常简单一个新的代码片段来创建一个私有的自动属性,所以额外的代码不会打扰我太多,因为我从来没有打字.
除了美学可能只是我的潜意识,使用完全私人汽车属性可能会导致任何问题吗?这样做有没有充分的理由呢?我今天在stackoverflow,codeplex,codeproject等上看到了很多代码,我从未见过有人使用过这个标准....有什么原因吗?
当我尝试在这个链接打开pdf时,http://www.health.state.mn.us/divs/hpsc/hep/merc/ctfapp2015b.pdf,使用itext,我得到一个带有以下stacktrace的NullPointerException:
NullPointerException com.itextpdf.kernel.pdf.tagging.ParentTreeHandler.registerMcr (ParentTreeHandler.java:154)
java.lang.NullPointerException
at com.itextpdf.kernel.pdf.tagging.ParentTreeHandler.registerMcr(ParentTreeHandler.java:154)
at com.itextpdf.kernel.pdf.tagging.ParentTreeHandler.registerAllMcrs(ParentTreeHandler.java:246)
at com.itextpdf.kernel.pdf.tagging.ParentTreeHandler.<init>(ParentTreeHandler.java:101)
at com.itextpdf.kernel.pdf.tagging.PdfStructTreeRoot.<init>(PdfStructTreeRoot.java:78)
at com.itextpdf.kernel.pdf.PdfDocument.open(PdfDocument.java:1299)
at com.itextpdf.kernel.pdf.PdfDocument.<init>(PdfDocument.java:199)
Run Code Online (Sandbox Code Playgroud)
我的代码非常简单:
(new PdfDocument(new PdfReader "blah.pdf"));
Run Code Online (Sandbox Code Playgroud)
这个PDF有什么不妥之处吗?我需要通过哪些类型的标志才能打开它?
编辑:使用iText 7.0.0时会发生这种情况.