How to retrieve the package and class info for an argument function in Scala? -
is there way full package , class info/names function passed argument? imagine following case:
package mypackage class myclass { def func(a: int): int = { * } def getpackageinfo(f: int => int): string = { // return package , class name of f } } in case invoking getpackageinfo(func) somewhere in myclass should return mypackage.myclass.func.
i aware f might anonymous function not belong class, handled check.
i don't mind changing signature of getpackageinfo, long can accept methods , return package , class info.
a normal function can't it, because if write getpackageinfo(func) compiler expands anonymous function: definition it's same getpackageinfo(func _) same getpackageinfo(x => func(x)). information want not stored in f, there no way out.
but can using macro. https://github.com/dwickern/scala-nameof should useful starting point modify: it'll give func instead of mypackage.myclass.func.
Comments
Post a Comment