91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-27 22:57:44 來源:腳本之家 閱讀:131 作者:三向板磚 欄目:編程語言

簡述:

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

成員內部類

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

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

測試代碼:

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

济阳县| 迁安市| 遂宁市| 麻栗坡县| 阳新县| 炎陵县| 额济纳旗| 玉溪市| 沽源县| 湄潭县| 稷山县| 福鼎市| 江安县| 江山市| 江陵县| 敦煌市| 阜康市| 绥中县| 淮阳县| 庆安县| 绿春县| 杭州市| 普兰店市| 黄骅市| 巴里| 鹤壁市| 宣城市| 濉溪县| 海原县| 电白县| 新民市| 阆中市| 呼和浩特市| 黔西县| 海安县| 西乡县| 沭阳县| 龙陵县| 阿克陶县| 广昌县| 申扎县|