java中定义常量_形参可以是表达式吗

java中定义常量_形参可以是表达式吗如here所述,javac和其他Java编译器可能为条件为“ConstantExpression”的if语句提供代码消除功能.如果我的代码使用依赖于不同包中定义的其他常量表达式的常量表达式,那么这将如何影响?例如,假设我在相应的指定包中有以下类:packagefoo;publicclassFoo{publicstaticfinalbooleanCONDITION=false;…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

here所述,javac和其他Java编译器可能为条件为

“Constant Expression”的if语句提供代码消除功能.

如果我的代码使用依赖于不同包中定义的其他常量表达式的常量表达式,那么这将如何影响?

例如,假设我在相应的指定包中有以下类:

package foo;

public class Foo {

public static final boolean CONDITION = false;

}

package bar;

import foo.Foo;

public class Bar {

public void test() {

if (Foo.CONDITION) {

System.out.println(“This line of code could be eliminated.”);

} else {

System.out.println(“This line of code will be executed.”);

}

}

}

显然,如果foo-package在运行时从外部jar文件加载,则编译器在技术上不能假设Foo.CONDITION将为false,并且不应该消除if-statement的真实分支.

而如果Foo和Bar实际上在同一个软件包中,则真正的分支应该绝对被消除(如果编译器完全支持代码消除).

不太确定如何最好地说出这个问题,但是:Foo如何“接近”需要在Bar中持续表达,以便在Bar中被认为是不变的?他们需要在同一个文件中吗?同样的包装?同一个jar文件?或者根本不重要(即编译器总是将Foo.CONDITION视为常量,并在编译时使用构建路径中找到的值)?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187902.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 树:二叉树的层序遍历算法(超简洁实现及详细分析)

    树:二叉树的层序遍历算法(超简洁实现及详细分析)实现思路我们来看看下图的二叉链表如何实现层序遍历。层序遍历顺序:ABECDGA为B、E的双亲结点,遍历顺序是根->左->右是不是。而且每个结点都是这样的遍历顺序有木有。那么我们完全可以采用队列的数据结构呗。A入队->然后出队,出队时将其左右孩子入队,循环队列进行出队,每次出队将其左右孩子入队。当队列为空时,整棵树层序遍历完毕。还没明白请看下面过程。A-&g…

    2022年5月21日
    44
  • 虚拟机VMware 运行不了系统的常见2个问题

    虚拟机VMware 运行不了系统的常见2个问题

    2022年3月7日
    220
  • 如何开启默认共享(win7默认共享文件夹位置)

    对于默认共享不知道你了解多少,反正留着是个隐患,现在唯一的办法好象只能做个bat文件进行删除.命令如下:netshareipc$/deletenetshareadmin$/deletenetsharec$/deletenetshared$/deletenetsharee$/delete本人运行了这个BAT现在想恢复高手指点?推荐答案DameWareminiremo…

    2022年4月17日
    54
  • reaver test[通俗易懂]

    reaver test[通俗易懂]airmon-ngairmon-ngstartwlan0airodump-ngmon0apt-getupdateapt-getinstallreaverreaver-imon0-b28:2C:B2:5E:79:14-vvreaver-imon0-b28:2C:B2:5E:79:14-vv-a-v-S-x2…

    2022年5月4日
    42
  • C语言dfs深度优先遍历_图的深度优先遍历举例

    C语言dfs深度优先遍历_图的深度优先遍历举例转载:https://blog.csdn.net/rr123rrr/article/details/77971771图的搜索有两种方式,一种是深度优先搜索(Depth-First-Search),另一种是广度优先搜索(Breadth-First-Search),接下来,我们来写一下这些搜索方式的Java实现,同样的,这里的代码均继承了自定义的EnhanceModual类,我之前的文章(查看En…

    2022年4月19日
    64
  • reverseFind()[通俗易懂]

    reverseFind()[通俗易懂]最佳答案是从字符串结尾开始检索,但是计算还是从开始的0起计,所以检索到第二个’b’是4abca==s.left(s.ReverseFind(‘b’));

    2022年6月14日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号