当前位置: 首页 > 知识库问答 >
问题:

在kotlin中,测试泛型类型的值是否实现了接口,然后将其用作接口的正确方法是什么?

璩俊雅
2023-03-14
fun <T> examine(a: T, b: T) {
    if (a is Comparable<*>) {
        a <= b
    }
}
fun <T> examine(a: T, b: T) {
    if (a is Comparable<*>) {
        println(a as Comparable<T> <= b)
    }
}

聪明的铸造应该不考虑这一点,因为我们做测试来检查a是否是可比的吗?不同的类型参数是否不允许在这里进行智能强制转换?

这是测试可比性的推荐方法吗?还是有其他解决方案可以避免未经检查的强制转换?

暂时还没有答案

 类似资料:
  • 问题内容: 我是Java泛型的新手,来自.NET世界,我习惯于编写这样的方法: 该方法接受通用类型的对象,并检查该对象是否实现通用接口的 特定 版本,在这种情况下为。 现在,在Java中,我可以执行以下操作: 但 Java并 没有 让我做 据我所知,由于类型擦除,通常在Java中,此类将由类对象处理,我们将执行以下操作: 但是由于我要检查的类型是通用接口,所以您不能这样做: 那么,如何在Java中

  • 问题内容: 所以我在Java中有这个课程: 在这个类中,我想知道T是否实现某些接口。 以下代码不起作用,但这是我要完成的工作的主意: 所以我想检查传递给Foo 的类是否具有其签名。 可能吗?怎么样? 问题答案: 奇怪的是,泛型也用于接口。1您将要使用: 这实际上是实现的要求, 而不是true / false check 。 为了进行真/假检查,请使用无限制的generics()并确保获得a,以便您

  • 编译时,此代码将产生以下+错误: 问题是访问中的类型T与列表中的T不相同。如何修复此编译问题?

  • 这里有一个示例代码,没有看明白, 1、请问下,泛型嵌套<PropsWithChildren<CreateFormProps>>,这里的<CreateFormProps> 是一个interface,可以是type吗? 2、<PropsWithChildren<CreateFormProps>> 代表什么意思呢?是否代表泛型:<PropsWithChildren> 实现了接口interface Cre

  • 问题内容: 目前我有这样的事情 main.go 还有我的工作包 和 我正在传递给NewJob的函数是在goroutine上每2秒执行一次,但是我想访问我传递的匿名结构…但是当我尝试访问时 编号 我越来越 t.Id未定义(类型interface {}是没有方法的接口) 但是打印t给我预期的结果 {1} 问题答案: 您必须先将其声明为兼容类型,然后才能访问其字段。