Просто еще один подход - вы можете интегрировать средства проверки кода, такие как PMD , в свой процесс сборки и создать правило, которое сообщает о каждом назначении Double.NaN
.
Это не будет идеально, потому что он не может поймать NaN, которые вы получаете извне (база данных, соединения) или которые кто-то создает с помощью битовых манипуляций, но по крайней мере вы можете убедиться, что Double.NaN
не может быть назначен переменная или использоваться в качестве параметра метода или внутри оценки.
Определение правил может быть сложным - но по крайней мере - это другой подход. Самое простое правило - запретить Double.NaN
вообще.