内联开关语句java?

内联开关语句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

有没有办法在java中实现内联switch语句

现在,我正在使用以下内容:

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;
};

如果
生命周期
枚举包含的值超过这三个值,则需要添加
默认值
案例;否则,它将是编译时错误。

它必须是
开关
语句吗?有了
地图