在Kotlin 0.12.1230中,似乎已弃用的API阻止了他们的替换品的使用。
例如,编译器抱怨以下代码段,因为它“无法在没有完成类型推断的情况下选择......候选人”
<?php
// including the config file
require('config.php');
//pdo connct for config.php file
$pdo = connect();
//Include main variables function
include('php/mainvariables.php');
//return of main variables function
$specificSchool = mainvariables();
$shcoolOfficialId = $specificSchool[0]["id"];
?>
候选人是val seq = sequenceOf("1")
val first = seq.firstOrNull()
和Sequence<T>.firstOrNull
,两者都有相同的签名,Stream<T>.firstOrNull
扩展Sequence<T>
。此外,Stream<T>
已弃用Stream<T>
。
尝试解决类型推断歧义,如下所示,导致编译器抱怨“重载决策模糊”。
Sequence<T>
在我们等待弃用的API彻底消失时,有没有办法解决歧义?
似乎转换为最不具体的类型,在这种情况下是不推荐使用的类型val seq = sequenceOf("1")
val first = seq.firstOrNull<String?>()
,它完成了它,但是现在我的代码在我不想这样做的时候显式依赖于弃用的类型:
Stream<T>
希望有更好的方法吗?