一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java內部類的全限定名規律代碼示例

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

2021-03-08 13:21三向板磚 Java教程

這篇文章主要介紹了Java內部類的全限定名規律代碼示例,具有一定借鑒價值,需要的朋友可以參考下。

簡述:

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

成員內部類

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

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

測試代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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開始的正整數-按照類裝載順序依次排列

測試代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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開始的正整數后跟局部類名-其中數字部分是局部類在外部類上下文出現的先后順序

測試代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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內部類的全限定名規律代碼示例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/shuzhe66/article/details/39177281

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 农夫69小说小雨与农村老太 | 国产三级精品三级男人的天堂 | 精品国产欧美一区二区 | 合欢视频免费 | 精品视频入口 | 亚洲欧美另类专区 | 美国一级大黄大色毛片 | 欧美一级视频在线 | 四虎影视884aa·com | 狠狠色狠狠色综合曰曰 | 美女的隐私无遮挡撒尿 | 韩国美女豪爽一级毛片 | 男人扒开 | 亚洲一区二区三区在线播放 | 97青草| 四虎综合九九色九九综合色 | www.com在线观看 | 胖女性大bbbbbb | 久久精品国产亚洲AV蜜臀 | 国产午夜精品一区二区三区 | 男人把j放进女人的p里视频 | avtt天堂网手机版亚洲 | 9色视频在线观看 | 亚洲天堂v | 欧美一二区 | 互换身体全集免费观看 | 国产精品嫩草影院一二三区 | 国产精品久久久久久久久免费 | 精新精新国产自在现 | 国产视频分类 | 欧美在线视频7777kkkk | 免费一级生活片 | 久青草国产观看在线视频 | 青春草视频免费观看 | 国产露脸对白刺激3p在线 | 国产精品美女久久久久网站 | 男人午夜禁片在线观看 | 国产精品亚洲va在线观看 | 日本一在线中文字幕天堂 | 性色欲情网站IWWW九文堂 | 精品性久久 |