当前位置: 首页 > 知识库问答 >
问题:

`assert`是一个关键字,使用Gradle编译

汤才捷
2023-03-14

我正在用Gradle编译一个Java项目。当我运行gradle build时,我得到:

任务:CompileJava失败/home/mvh/projects/research/dpm/src/main/java/dpm/bandera/bandera.java:102:错误:从1.4版起,“assert”是一个关键字,不能用作标识符public static void assert(boolean expr){^(use-source 1.3或更低版本将“assert”用作标识符)1错误

显然,在使用javac编译时,解决方案是根据错误消息添加参数-source1.3。所以我尝试在gradle中添加这个参数,如下所示:

compileJava {
    options.compilerArgs << '-ea'
}

我还尝试了enableassertions-enableassertionsea来代替-ea

我也试过这个:

test {
    enableAssertions = true
}

共有1个答案

韩恺
2023-03-14

你试过了吗?

compileJava {
    options.compilerArgs << '-source 1.3'
}

我必须警告你,这样你就失去了所有“现代”语言特性(比如泛型)。

PS:正确的解决方案是在类bandera中重命名assert方法。

compileJava {
    sourceCompatibility = 1.3
}

改名方法是解决这一问题的较好方法。

 类似资料:
  • 问题内容: 怎么办?例如在函数中: 问题答案: 如果使用(或-ea简称)启动程序,则此语句 相当于 如果不使用此选项启动程序,则assert语句将无效。 例如,;在你的问题中发布的,等同于 (如果你启动的是。) Java语言规范assert正式为:14.10。该声明说: 14.10。的声明 的断言是一个含有一个布尔表达式语句。断言是启用还是禁用。如果启用了断言,则断言的执行将导致对布尔表达式进行求

  • 问题内容: 有哪些现实的例子可以理解断言的关键作用? 问题答案: 断言(通过assert关键字)是在Java 1.4中添加的。它们用于验证代码中不变式的正确性。切勿在生产代码中触发它们,并表示存在错误或滥用代码路径。可以在运行时通过命令上的选项将其激活,但默认情况下未启用它们。 一个例子:

  • 本文向大家介绍详解Java编程中static关键字和final关键字的使用,包括了详解Java编程中static关键字和final关键字的使用的使用技巧和注意事项,需要的朋友参考一下 Java static关键字以及Java静态变量和静态方法 static 修饰符能够与变量、方法一起使用,表示是“静态”的。 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以st

  • 我已经安装了PocketSphinx演示,它在Ubuntu和Eclipse下运行良好,但是尽管尝试过,我还是不知道如何添加对多个单词的识别。 我只想让代码识别单个单词,然后我可以在代码中,例如“up”、“down”、“left”、“right”。我不想识别句子,只想识别单个单词。 在这方面的任何帮助都将不胜感激。我发现其他用户也有类似的问题,但到目前为止还没有人知道答案。 让我困惑的一件事是,为什

  • KAG 能做什么样的游戏 ( 初始介绍 ) != ( 变量的使用-条件判断 ) % ( 宏(Macro)的使用-宏的属性 ) %[ ] ( TJS进阶使用预备知识-字典 ) & ( 变量的使用-实体(entity) ) && ( TJS进阶使用预备知识-表达式的运算、条件判断、显示中的应用 ) * ( 显示文字相关-剧本中的特殊符号・特殊行 ) * ( 宏(Macro)的使用-宏的属性 ) * (

  • ! ( 表达式和运算符-普通的单目运算符 ) ! ( 表达式和运算符-函数调用,括号类,后置的递增和递减等等 ) != ( 表达式和运算符-相等判断运算符 ) !== ( 表达式和运算符-相等判断运算符 ) # ( 表达式和运算符-普通的单目运算符 ) $ ( 表达式和运算符-普通的单目运算符 ) % ( 表达式和运算符-乘除取余运算符 ) %= ( 表达式和运算符-赋值运算符 ) %[ ] (