小编use*_*819的帖子

在没有继承层次结构的scala中编写通用代码

我有几个类不是从任何超类派生的.他们都定义了大量相同的方法.例如,

class A {
    def getMsgNum = 1
}

class B {
    def getMsgNum = 2
}
Run Code Online (Sandbox Code Playgroud)

我想编写一个泛型函数,它将根据调用的对象函数返回消息num.所以,像,

def getMsgNum[T](t: T) = t.getMsgNum
Run Code Online (Sandbox Code Playgroud)

我认为,由于类型擦除,我不能指望它可以工作,但我正在查看与ClassTag绑定的视图绑定和上下文,但仍然无效.

def getType[T: ClassTag](msg: T) = {
    msg.getMsgNum
}
Run Code Online (Sandbox Code Playgroud)

我来自C++背景,我正在尝试为每种类型实现模板编译的效果.

谢谢你的时间!

generics scala

4
推荐指数
1
解决办法
151
查看次数

标签 统计

generics ×1

scala ×1