国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:117日期: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();需要到運行的時候才能知道(盡管運行的時候確實是常量),所以編譯不能通過

回答3:

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

回答4:

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

標簽: java
相關文章:
主站蜘蛛池模板: 玛曲县| 大庆市| 苏尼特左旗| 文安县| 石家庄市| 囊谦县| 朝阳区| 广南县| 丽江市| 墨竹工卡县| 德阳市| 许昌县| 宣武区| 阿拉善右旗| 常山县| 阳朔县| 丰都县| 邢台市| 五家渠市| 治县。| 四川省| 梅州市| 泰宁县| 高邑县| 南康市| 永平县| 灌南县| 确山县| 和林格尔县| 剑阁县| 濮阳市| 湟源县| 江西省| 乌兰察布市| 安化县| 平利县| 黄陵县| 红安县| 普陀区| 诏安县| 衡阳县|