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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Visio2003密钥(office 2003密钥)

    序列号:GWH28-DGCMP-P6RC4-6J4MT-3HFDY序列号:WFDWY-XQXJF-RHRYG-BG7RQ-BBDHM

    2022年4月18日
    169
  • feign原理详解_vip视频解析是什么原理

    feign原理详解_vip视频解析是什么原理Feign原理解析基本原理现在已经了解了Ribbon的负载均衡原理,我们可以来猜想下,Feign的原理,仅仅通过一个注解@FeignClient+一个接口,就可以服务之间的调用。通过@FeignClient在注解中的name,确定服务名,然后RibbonClient使用服务名去获取负载均衡器loadBalancer,再通过负载均衡算法获取到ip:port,然后构建的请求为http://nacos-component-provider/test/{id},当id=1

    2022年10月4日
    3
  • redis集群搭建(非常详细,适合新手)_redis集群模式

    redis集群搭建(非常详细,适合新手)_redis集群模式一、基本环境首先我们需要使用VMware配置几个虚拟机,我们需要安装VMWare然后下载自己的linux镜像文件,在虚拟机上安装linux系统,vm15和centos7下载传送门提取码:lvb5。我使用的是centos764,大致步骤可以根据其他博客将第一台虚机的系统安装成功,然后直接clone这台机器就可以了,然后需要修改ip。二、准备相关软件安装包…

    2022年10月15日
    3
  • QSplitter(分离部件)

    QSplitter(分离部件)QSplitterTheQSplitterclassimplementsasplitterwidget.Asplitterletstheusercontrolthesizeofchildwidgetsbydraggingtheboundarybetweenthem.Anynumberofwidgetsmaybecontrolled…

    2022年4月19日
    59
  • 联想笔记本电脑键盘灯在哪里开_笔记本自带键盘没反应

    联想笔记本电脑键盘灯在哪里开_笔记本自带键盘没反应在联想系列笔记本电脑中,有一个键盘等功能,它们不仅可以看起来很酷,而且可以在光线相对较低时打开键盘灯,以便我们可以清楚地看到键盘上的按键,但是许多用户我不知道如何打开联想的键盘灯。实际上,有些快捷键可以快速打开。让我们与您分享在联想笔记本电脑键盘上按哪个键。具体步骤如下:1、某些Lenovo笔记本电脑型号具有键盘背光功能,可以通过“FN+Space”将其打开。对于支持此功能的Zhi型号,在d…

    2026年2月3日
    6
  • idea2020.3永久激活【2021.10最新】

    (idea2020.3永久激活)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~09…

    2022年3月28日
    322

发表回复

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

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