Асинхронный рабочий в Android WorkManager

Был вопрос об этом совсем недавно для C # ... - читайте ответы там также, так как это в основном то же самое. Вы также можете найти последнее сообщение в блоге Эрика Липперта ; это, по крайней мере, около одной и той же области, хотя и имеет несколько другую направленность.

В принципе, для того, чтобы переменной присваивалось значение, прежде чем вы прочитаете, это хорошая вещь. Это означает, что вы случайно не прочитаете то, чего не хотели. Да, переменные могут иметь значения по умолчанию - но не лучше ли, чтобы компилятор смог поймать вашу ошибку, если это может доказать, что вы пытаетесь прочитать что-то, что еще не было назначено? Если вы хотите присвоить локальную переменную значение по умолчанию, вы всегда можете назначить это явно.

Теперь это нормально для локальных переменных, но, например, для статических переменных и переменных, компилятор не имеет способа узнать порядок в какие методы будут называться. Будет ли вызвано свойство «сеттер» перед «геттером»? Он не может знать, поэтому он не может предупредить вас об опасности. Вот почему значения по умолчанию - это , используемые для экземпляра / статические переменные - по крайней мере, тогда вы получите известное значение (0, false, null и т. Д.), А не просто «все, что было в памяти в то время «. (Он также устраняет потенциальную проблему безопасности чтения конфиденциальных данных, которые не были явно стерты.)

21
задан Dhaval Solanki 7 June 2019 в 11:45
поделиться