基于java枚舉類綜合應(yīng)用的說(shuō)明
如下面代碼以交燈為示例:
public class Test {
public static void main(String[] args) {
Trafficlight light = Trafficlight.RED;
System.out.println(light.time);
System.out.println(light.nextLigth());
// ordinal()方法返回枚舉聲明的順序
System.out.println(light.ordinal());
// values()方法得到所有枚舉類型的一個(gè)數(shù)組
for(Trafficlight light1:light.values()){
System.out.println(light1.name());
}
// valueOf()方法可以把字符串轉(zhuǎn)換成相應(yīng)的枚舉對(duì)象
System.out.println(light.RED ==light.valueOf("RED"));
}
public enum Trafficlight {
GREEN(30) {
@Override
public Trafficlight nextLigth() {
return RED;
}
},
RED(30) {
@Override
public Trafficlight nextLigth() {
return YELLOW;
}
},
YELLOW(10) {
@Override
public Trafficlight nextLigth() {
return GREEN;
}
};
public abstract Trafficlight nextLigth();
private int time;
// 構(gòu)造方法
private Trafficlight(int time) {
this.time = time;
}
public int getTime(){
return time;
}
}
}
代碼中,可以看到GREEN,RED,YELLOW,分別是Trafficlight的一個(gè)子類,并作為它的成員變量。在Trafficlight有一個(gè)抽象方法nextLight(),在子類中是必須要實(shí)現(xiàn)的,所以@Override,另外它們也繼承了父類的方法,所以可以調(diào)用父類的方法 getTiime(),由于父類Trafficlight中聲明一個(gè)有參數(shù)的構(gòu)造方法覆蓋了無(wú)參的構(gòu)造方法,所以構(gòu)建子類時(shí)也必須要加上參數(shù)。
代碼中l(wèi)ight只是相當(dāng)于一個(gè)父類的實(shí)例,用它可以得到各個(gè)成員變量的子類,調(diào)用各種方法,valueOf(String)方法可以將字符串轉(zhuǎn)換成一個(gè)枚舉。
相關(guān)文章
SpringBoot+SpringSecurity 不攔截靜態(tài)資源的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot+SpringSecurity 不攔截靜態(tài)資源的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09MyBatis批量插入大量數(shù)據(jù)(1w以上)
MyBatis進(jìn)行批量插入數(shù)時(shí),一次性插入超過(guò)一千條的時(shí)候MyBatis開(kāi)始報(bào)錯(cuò),本文主要介紹了MyBatis批量插入大量數(shù)據(jù)的解決方法,感興趣的可以了解一下2022-01-01詳解spring中使用Elasticsearch的代碼實(shí)現(xiàn)
本篇文章主要介紹了詳解spring中使用Elasticsearch的代碼實(shí)現(xiàn),具有一定的參考價(jià)值,有興趣的可以了解一下2017-05-05Spring Data JPA 如何使用QueryDsl查詢并分頁(yè)
這篇文章主要介紹了Spring Data JPA 如何使用QueryDsl查詢并分頁(yè),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java 動(dòng)態(tài)代理的多種實(shí)現(xiàn)方式
動(dòng)態(tài)代理實(shí)際上是JVM在運(yùn)行期動(dòng)態(tài)創(chuàng)建class字節(jié)碼并加載的過(guò)程。本文講述了Java 動(dòng)態(tài)代理的多種實(shí)現(xiàn)方式,感興趣的朋友可以選擇適合自己的方式2021-06-06Spring-Cloud Eureka注冊(cè)中心實(shí)現(xiàn)高可用搭建
這篇文章主要介紹了Spring-Cloud Eureka注冊(cè)中心實(shí)現(xiàn)高可用搭建,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04