首页 > 解决方案 > 使用接口类型绑定和隐式的泛型重写方法

问题描述

我有一个通用的特征和两种检查员工年龄和姓名的替代方法。

trait Conditions[T] {
    def nameIs(color: String): T
    def ageUpperThan(upper: Int): T
}

def nameIs[T](color: String)(implicit fi: Conditions[T]): T = fi.nameIs(color)

我想将所有这些 Scala 代码重写为 Java,这让我可以生成一个具体的条件,例如检查名字是 John。

def isJohn[T: Conditions]: T = nameIs[T]("John")

代码也必须显示结果:

def show: Conditions[String] =
    new Conditions[String] {
        def nameIs(name: String): String = s"name is $name"
        def ageUpperThan(age: Int): String = s"age upper $age"
    }

println(isJohn[String](show))

你能帮我重写方法 nameIs 和 isJohn 吗?

implicit我有一个问题[T: Conditions]

标签: javascalagenericsimplicitscala-java-interop

解决方案


推荐阅读