首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Manifold String模板(manifold.systems)中的转义美元符号($)

Java Manifold String模板(manifold.systems)中的转义美元符号($)
EN

Stack Overflow用户
提问于 2021-09-30 08:19:48
回答 1查看 27关注 0票数 0

我已经在我们的Maven Java项目pom.xml中添加了Manifold.systems Java库:

代码语言:javascript
复制
   <dependency>
        <groupId>systems.manifold</groupId>
        <artifactId>manifold-ext</artifactId>
        <version>${manifold-version}</version>
    </dependency>

在此之后,将编译以下代码行:

代码语言:javascript
复制
String foo = "$HIS";

编译失败:

代码语言:javascript
复制
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /c:/workspaces/dev/src/main/java/com/foo/bar/MyClass.java:[26,24] cannot find symbol
  symbol:   variable HIS
  location: class com.foo.bar.MyClass
[INFO] 1 error

显然,这是Manifold String模板试图找到一个名为$HIS的变量,该变量没有在作用域中定义。因此,我需要转义$符号,因为我需要它成为字符串文字的一部分。我该怎么做呢?如果我使用\$,那么IntelliJ会尖叫“字符串文字中的非法转义字符”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-01 12:56:24

我发现最优雅的方式是使用同一个Manifold库中的注解@DisableStringLiteralTemplates:

代码语言:javascript
复制
import manifold.rt.api.DisableStringLiteralTemplates;

public class FooExample {

    @DisableStringLiteralTemplates
    public void sampleMethod() {
        String foo = "$HIS";
        System.out.println("Foo is " + foo);
    }

}

用\$转义美元也是有效的,只需要IntelliJ Manifold.systems插件就可以识别Manifold Java库的所有函数。

有关流形字符串模板的详细说明可在此处找到:https://github.com/manifold-systems/manifold/tree/master/manifold-deps-parent/manifold-strings

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69388699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档