【问题标题】:Syntax error on token "assert", invalid VariableDeclaratorId [closed]令牌“断言”的语法错误,无效的 VariableDeclaratorId [关闭]
【发布时间】:2016-03-25 06:24:27
【问题描述】:

这是我的代码

public class assertion {

public static void main(String[] args) {

    int a=11,b=3,i=0;
    double assert=2.4;
    a+=a;
    b+=b;

    if(i!=0) {
        System.out.println("hi");
    } else {
        assert a+b==11:"a+b=11";// stops the exe of the program
        System.out.println(a+b);
    }

  }

  }

"double assert=2.4;" 语句中,我收到 error 作为 “令牌“assert”的语法错误,VariableDeclarat 无效”。请帮帮我。

【问题讨论】:

  • assert 是关键字,因此不能用作变量名。阅读THIS 以更好地理解变量声明。
  • 如果您在 StackOverflow 中查看您的问题,很明显 assert 是蓝色的,例如 ifelsedouble
  • @Abhi 感谢您的回复,但我读到断言可以用作 java 语言规范中的标识符。请参阅此站点:docs.oracle.com/javase/7/docs/technotes/guides/language/... 参见“与现有程序的兼容性”子标题下方的段落。希望你能回复我
  • @BabyboB 在这个 LINK 中搜索 Source Compatibility 并阅读...

标签: java assertion


【解决方案1】:

assert 是 Java 中的一个关键词。你不能那样使用assert(作为变量)。

请参阅Programming With Assertions 指南。

另见Java Language Keywords

附:您可以将assert 用作关键字或标识符(将-source 1.3javac 一起使用),但不能同时使用。

【讨论】:

  • @Alexey 感谢您的回复,但我读到断言可以用作 java 语言规范中的标识符。请参阅此站点:docs.oracle.com/javase/7/docs/technotes/guides/language/…,请参阅“与现有程序的兼容性”子标题下方的段落。希望你能回复我。
  • @BabyboB 这是相当古老的信息。由于 JDK 1.5(包括)assert 不能用作关键字。但是在 1.4 中使用 assert 作为关键字只会产生警告。这种行为提供了与旧资源的向后兼容性。你总是可以使用标志-source 1.3javac 来正确编译你的代码。
  • @Alexey 非常感谢兄弟。您能否帮助我理解 docs.oracle.com/javase/7/docs/technotes/guides/language/ 中“要求启用断言”下给出的段落。给定 boolean assertsEnabled = false;断言断言启用=真;但是如何在给定代码的断言语句中使用布尔表达式以外的表达式。
  • @BabyboB,您只能在断言语句中使用,这些语句返回布尔值。在那种情况下assertsEnabled = true实际上返回了赋值的结果,即布尔值true
  • @阿列克谢。 K. 你怎么说“assertsEnabled = true”实际上返回了赋值的结果?赋值语句会返回任何东西吗?因为它不是方法调用。这只是分配,对吧?
猜你喜欢
  • 1970-01-01
  • 2015-01-05
  • 2013-03-27
  • 1970-01-01
  • 2016-10-18
  • 2014-01-10
  • 2012-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多