内联开关语句java?
有没有办法在java中实现内联switch语句 现在,我正在使用以下内容:内联开关语句java?,java,switch-statement,Java,Switch Statement,有没有办法在java中实现内联switch语句 现在,我正在使用以下内容: LifeCycle lifeCycle = ...; String baseURL = switch (lifeCycle) { case Production -> prodUrl; case Development -> devUrl; case LocalDevelopment -> localDevUrl; }; private静态字符串BaseURL=(lifeCy
LifeCycle lifeCycle = ...;
String baseURL = switch (lifeCycle) {
case Production -> prodUrl;
case Development -> devUrl;
case LocalDevelopment -> localDevUrl;
};
private静态字符串BaseURL=(lifeCycle==lifeCycle.Production)
? 产品目录
:((lifeCycle==lifeCycle.Development)
?devUrl
:((lifeCycle==lifeCycle.LocalDevelopment)
?localDevUrl
:null
)
);
如果我能做以下事情,我会更喜欢:
private静态字符串BaseURL=switch(生命周期){
案例制作:返回prodUrl;
案例开发:return devUrl;
案例LocalDevelopment:返回localdevull;
}
我知道您可以通过将
BaseURL
变量移动到发生切换的函数GetBaseURL
中来实现这一点(见下文),但是我更好奇的是,Java中是否存在此功能
静态字符串GetBaseURL(){
交换机(生命周期){
案例制作:返回prodUrl;
案例开发:return devUrl;
案例LocalDevelopment:返回localdevull;
}
返回null;
}
我正在从Swift过渡,在Swift中,我知道您可以这样做:
private静态变量BaseURL:String{
交换机(API.LifeCycle){
案例.制作:
返回产品URL
案例.发展:
返回devUrl
案例.地方发展:
返回localDevUrl
}
}
假设生命周期
是一个枚举
,那么您很幸运,正如我们在JDK 12中作为预览功能引入的一样。通过使用它们,您的代码将如下所示:
LifeCycle lifeCycle = ...;
String baseURL = switch (lifeCycle) {
case Production -> prodUrl;
case Development -> devUrl;
case LocalDevelopment -> localDevUrl;
};
如果
生命周期
枚举包含的值超过这三个值,则需要添加默认值
案例;否则,它将是编译时错误。它必须是开关语句吗?有了地图