Учитывая один из этих экземпляров: org.apache.commons.configuration.PropertiesConfiguration Я хочу написать комментарий.Как?
pc = new PropertiesConfiguration();
writeComment("this is a comment about the stuff below"); // HOW DO I WRITE THIS?
pc.addProperty("label0", myString);
writeComment("end of the stuff that needed a comment.");
Редактировать: у меня есть грубое решение.Надеюсь, это можно улучшить.
Вот лучшее, что я мог сделать.Он оставляет постороннюю строку в файле.
pc = new PropertiesConfiguration();
writeComment(pc, "The following needed a comment so this is a comment.");
pc.addProperty(label0, stuff0);
writeComment(pc, "End of the stuff that needed a comment.");
...
private void writeComment(PropertiesConfiguration pc, String s)
{
String propertyName = String.format("%s%d", "comment", this.commentNumber++);
pc.getLayout().setComment(propertyName, s + " (" + propertyName + ")");
// make a dummy property
pc.addProperty(propertyName, ".");
// put in a dummy right-hand-side value so the = sign is not lonely
}
Одна из проблем этого подхода заключается в том, что документ PropertiesConfiguration немного расплывчат в макете.В нем прямо не говорится, что комментарий будет отображаться над фиктивной строкой, поэтому существует риск того, что PropertiesConfiguration может свободно переупорядочить файл при последующих вызовах.Я даже не видел гарантии того, что порядок строки свойств сохраняется, поэтому я не могу гарантировать, что комментарий (и фиктивная строка) всегда будет выше свойства, к которому относится комментарий: свойство label0
.Конечно, я здесь немного параноик.Тем не менее, документ говорит, что макеты не гарантированно останутся неизменными. Надеюсь, кто-то может придумать что-то без фиктивной строки и документа Java или веб-сайта с гарантией на положение комментария относительно свойства, к которому он предназначен, чтобы прокомментировать. Редактировать: Вы можете спросить, почему я бы создалфиктивное свойство вместо простого добавления комментария к одному из свойств, которое уже будет в файле.Причина в том, что я хочу, чтобы комментарий представил блок свойств, и возможны изменения (новые или переключение в порядке).Я не хочу создавать проблему обслуживания.В моем комментарии должно быть написано «это раздел результатов анализа данных» или «это раздел графика», и мне никогда не придется возвращаться к нему.