Kotlin超载解决标准库中的模糊性

时间:2015-08-14 21:44:10

标签: kotlin

在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>

希望有更好的方法吗?

0 个答案:

没有答案