У меня отключена инфиксная функция Kotlin:
private fun statementMeetsConditions(policy: PolicyStatement, per: PolicyEnforcementRequest): Boolean {
return policy.conditions areMetBy per.attributes
}
private infix fun JsonNode?.areMetBy(attributes: Map<String, String>): Boolean {
if (this == null) return true //no conditions, so we pass
TODO("Condition-based policies not implemented")
}
Во время выполнения policy.conditions
равно нулю.
Я бы подумал, что (this == null)
будет иметь значение true, однако я запускаю исключение времени выполнения, когда инфиксная функция попадает в TODO
.
Это обе функции-члены в классе - поэтому яПодозреваю, что «this» оценивает экземпляр класса ( не null), а не JsonNode?
, который я ожидал.Как я могу гарантировать, что я ссылаюсь на JsonNode?
вместо класса?