国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java內部類的全限定名規律代碼示例

2024-07-13 10:15:06
字體:
來源:轉載
供稿:網友

簡述:

由于最近遇到不少需要反射的類,而其中不乏java/212177.html">內部類,在此總結一下內部類的全限定名的規律。

成員內部類

測試結果表明,無論成員內部類是否為靜態,其全限定名都使用如下命名方法:

包名.外部類名$內部類名

測試代碼:

package com.test;public class InnerClassTest {	static class StaticInner{	}	class Inner{	}	public static void main(String[] args) {		StaticInner si = new StaticInner();		Inner in = new InnerClassTest().new Inner();		System.out.println(si.getClass());		System.out.println(in.getClass());	}}

打印結果:

classcom.test.InnerClassTest$StaticInner
classcom.test.InnerClassTest$Inner

匿名內部類

匿名內部類的全限定名滿足如下規律:

包名.外部類名$由1開始的正整數-按照類裝載順序依次排列

測試代碼

package com.test;public class InnerClassTest {	static Object staticAnClass = new Object(){	}	;	static Object staticBlockAnClass;	static {		staticBlockAnClass = new Object(){		}		;	}	Object anClass = new Object(){	}	;	Object blockAnClass;	{		blockAnClass = new Object(){		}		;	}	public static void main(String[] args) {		InnerClassTest functionClass = new InnerClassTest(){		}		;		System.out.println(staticAnClass.getClass());		System.out.println(staticBlockAnClass.getClass());		InnerClassTest test = new InnerClassTest();		System.out.println(test.anClass.getClass());		System.out.println(test.blockAnClass.getClass());		System.out.println(functionClass.getClass());	}}

打印結果:
class com.test.InnerClassTest$1
class com.test.InnerClassTest$2
class com.test.InnerClassTest$3
class com.test.InnerClassTest$4
class com.test.InnerClassTest$5

局部內部類

局部內部類全限定名使用如下命名方式:

包名.外部類名$由1開始的正整數后跟局部類名-其中數字部分是局部類在外部類上下文出現的先后順序

測試代碼

package com.test;public class InnerClassTest {	public static void main(String[] args) {		functionA();		functionB();	}	public static void functionA() {		class Inner {		}		;		System.out.println(new Inner().getClass());	}	public static void functionB() {		class Inner {		}		;		System.out.println(new Inner().getClass());	}}

上例打印結果: 

classcom.test.InnerClassTest$1Inner 
classcom.test.InnerClassTest$2Inner 
在測試代碼的基礎上在交換main中functionA、B位置后的結果: 
classcom.test.InnerClassTest$2Inner 
classcom.test.InnerClassTest$1Inner 
在測試代碼基礎上交換functionA、B聲明位置的結果: 
classcom.test.InnerClassTest$2Inner 
classcom.test.InnerClassTest$1Inner

總結

以上就是本文關于Java內部類的全限定名規律代碼示例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵德县| 周宁县| 泗洪县| 桃园市| 汾西县| 游戏| 平南县| 黑龙江省| 贵溪市| 黄大仙区| 房山区| 甘谷县| 黄陵县| 乌什县| 中山市| 盘山县| 巴青县| 杨浦区| 平利县| 龙岩市| 色达县| 安阳市| 连平县| 靖边县| 纳雍县| 晋中市| 定襄县| 皋兰县| 珠海市| 商丘市| 台江县| 手游| 海淀区| 上思县| 郧西县| 南投县| 宽城| 琼中| 游戏| 阿图什市| 灵山县|