久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

java - 接口中的成員變量怎么不是常量了?

瀏覽:150日期:2023-10-29 15:40:58

問題描述

switch (from) { case TAGs.casts://constant expression requiredbreak;}//我的TAGs.casts是這樣的public interface TAGs { String casts = String.class.getSimpleName();}//如果寫成這個樣子就可以編譯public interface TAGs { String casts = 'String';}

不是說接口中的成員變量都是常量嗎?為什么在case上使用不了提示需要常量呢?

問題解答

回答1:

使用接口要給常量賦初值,你自己寫的沒有給定初值,肯定是錯的啊。

回答2:

switch里的case需要在編譯期就確定值,而String.class.getSimpleName();需要到運(yùn)行的時候才能知道(盡管運(yùn)行的時候確實(shí)是常量),所以編譯不能通過

回答3:

的確是。一個是編譯時要求的知道,一個是runtime(反射的方法都是runtime的)。之前答錯了——以前看effective java的時候是static final修飾的的。同時里面還有一個建議,導(dǎo)出常量請使用枚舉類。

回答4:

不是說接口中的成員變量都是常量嗎請問這句話從哪里聽來的?常量需要使用static final修飾,并且需要給定初始值

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 灯塔市| 衡山县| 云霄县| 西丰县| 长丰县| 乌苏市| 房山区| 应用必备| 连州市| 镇江市| 来凤县| 麻栗坡县| 高阳县| 承德市| 吉木萨尔县| 佛学| 景东| 仁布县| 贵港市| 钦州市| 兴隆县| 芜湖县| 科技| 囊谦县| 上虞市| 同江市| 龙山县| 崇信县| 乌兰浩特市| 石城县| 白银市| 柳江县| 柘城县| 高阳县| 锦屏县| 苗栗县| 拜泉县| 玉树县| 霍山县| 祁东县| 南涧|