小编raw*_*phl的帖子

获取部分函数的已定义参数

说我有一个部分功能(类似于Akka的演员接收方法)

def receive: PartialFunction[Any, Unit] = {
    case SomeCaseClass(params) => println("whatever")
}
Run Code Online (Sandbox Code Playgroud)

有没有办法获得这个函数的所有定义参数?

我正在实现类似JSON RPC的服务结构.我基本上希望客户能够通过部分功能定义服务.

def clientService = {
    case Connect(login, password) =>.....
    case SomeMessage => ...
    case SomeMethod(bla) => ..
}
Run Code Online (Sandbox Code Playgroud)

例如,第一种方法将被翻译出来

{method: "connect", params:{login: "asdsad", password: "adsada"}}
Run Code Online (Sandbox Code Playgroud)

(此部分已经有效)

现在,如果客户端已经定义了服务而另一个客户端想知道服务的可用方法,我现在需要知道服务接受哪种类型的案例类,以便我可以告诉请求的客户端.我知道我可以使用对象中的常规方法轻松完成此操作,但由于我解析JSON并将其转换为case类,部分函数将简化我的API并且我喜欢漂亮的代码;)

另外我很确定必须有一种通过反射的方法,虽然我不知道在编译/运行后如何表示部分函数.

reflection scala

5
推荐指数
1
解决办法
826
查看次数

标签 统计

reflection ×1

scala ×1