From 484b53df003c5bd910c38a7926741b1b9609866c Mon Sep 17 00:00:00 2001 From: abyrd Date: Wed, 22 Nov 2023 19:17:58 +0800 Subject: [PATCH] add comment explaining reason for recent patch --- .../com/conveyal/analysis/results/CsvResultWriter.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/conveyal/analysis/results/CsvResultWriter.java b/src/main/java/com/conveyal/analysis/results/CsvResultWriter.java index 018931209..ca0cf09c5 100644 --- a/src/main/java/com/conveyal/analysis/results/CsvResultWriter.java +++ b/src/main/java/com/conveyal/analysis/results/CsvResultWriter.java @@ -41,7 +41,12 @@ public abstract class CsvResultWriter extends BaseResultWriter implements Region */ public abstract CsvResultType resultType (); - /** Override to provide column names for this CSV writer. */ + /** + * Override to provide column names for this CSV writer. + * NOTE: Due to Java weirdness, subclass implementations of this method will be called by the CsvResultWriter + * constructor at a time when fields of the subclass remain initialized, but uninitialized final primitive + * fields are still readable! Do not read subclass fields in these implementations until/unless this is restructured. + */ protected abstract String[] columnHeaders (); /** Override to extract row values from a single origin result. */