私が試した:Kotlinでコンパイル時定数NaNまたはPOSITIVE_INFINITYを作る方法は?
import kotlin.Double.Companion.POSITIVE_INFINITY
import kotlin.Double.Companion.NaN
const val inf = POSITIVE_INFINITY
const val nan = NaN
をしかし、私は得る:
のConst 'ヴァル' 初期化子が一定値である必要があります
はEDIT:
私が必要とする理由これが原因Junit5's parametrized testsのある操作を行います。
@ParameterizedTest
@ValueSource(doubles = doubleArrayOf(nan, inf, -2* epsilon, 1.5, -0.5, 1.0 + 2* epsilon))
fun ensureNotAProbability(number: Double)
{
...
}
により(this SO answerで説明)Javaアノテーション「アノテーションに渡す」物事のいくつかの制限にのみコンパイル時の定数することができます。したがって、コンパイル時にNaN、正、負の無限大が必要です。
は、あなたの答えをありがとう、この私の問題は解決しません。これらの値をコンパイル時定数にする必要があります。そのため、Javaアノテーションでこれらの値を使用できます。 –
@MartinDrozdik興味深いことに、あなたのユースケースを質問で分かち合うことができますか? – Ilya
@Ilya確かに:)実世界のユースケースを含めるように私の質問を拡張しました。 –