Да, я думаю, вы должны использовать свойства внутри своих классов, когда это возможно. Свойства более гибкие и позволяют добавлять логику для проверки ее ценности в центральном месте.
Вы также можете задержать инициализацию поля всякий раз, когда свойство используется вместо того, чтобы принудительно выполнять его в конструкторе (или везде, где используется поле). Пример:
class Test {
private int _checksum = -1;
private int Checksum {
get {
if (_checksum == -1)
_checksum = calculateChecksum();
return checksum;
}
}
}
Обновлено:
JDBCSinkFunction выполняет сброс и пакетное выполнение каждый раз при проверке контрольных точек Flink. Пока вы делаете контрольные точки, партии не будут дольше интервала контрольных точек.
Однако, прочитав эту ветку списка рассылки , я вижу, что JDBCSinkFunction не поддерживает вывод только один раз.