java下划线的转义_在Scala中转义Java互操作性的下划线

更新时间:2023-05-21 11:40:42 阅读: 评论:0

java下划线的转义_在Scala中转义Java互操作性的下划线假设我有⼀些Scala代码调⽤⼀个使⽤_作为标识符的Java库(⽽且这是⼀个很长的故事)。这是⼀个简化的例⼦:
public class StupidUnderscore {
public static String _() { return "Plea give me a real name!"; }
}
没问题吧?只是逃避它:
scala> StupidUnderscore.`_`广泛的英文
res0: String = Plea give me a real name!
relea是什么意思这⼀直是有效的,直到今天早上我尝试更新Scala 2.10.2:
scala> StupidUnderscore.`_`
:1: error: wildcard invalid as backquoted identifier
StupidUnderscore.`_`
^什么是内审员
这是由于在2.10.1中出现的a change,修复了this issue.从提交消息:
Prohibit _ as an identifier, it can only bring badness.
但是的英文嗯,当然,但我不知道为什么这意味着我⽆法逃避它 – 我认为这是背后的引⽤。
inparallel我要写⼀个Java包装器才能使它⼯作吗?有没有其他⽅法可以在Scala中引⽤Java库的_⽅法?
古天乐英文名作为脚注,我已经确认可以解决这个问题,⽽⽆需编写任何新的Java:水嶋あずみ
object AwfulMacroHack {
import perimental.macros
flect.macros.Context
def _impl(c: Context) = {
import c.univer._
c.Expr[String](
Select(Ident(newTermName("StupidUnderscore")), newTermName("_"))
)
}
def `I'm not named _!` = macro _impl
}
jolissa>facc接着:
scala> AwfulMacroHack.`I'm not named _!`
四级照门
res0: String = Plea give me a real name!
不过,我不确定这不是Java助⼿解决⽅案那么糟糕。

本文发布于:2023-05-21 11:40:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/719085.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:互操作性   问题   确认
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图