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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品亚洲综合久久中文字幕 | 亚洲精品一区二区三区在线看 | 青青久久精品国产免费看 | 久久aa毛片免费播放嗯啊 | 亚洲国产精品久久精品成人网站 | 大象传媒2021秘密入口 | 免费370理论片中文字幕 | 99久久免费视频 | 国产日韩欧美综合在线 | 日本美女视频韩国视频网站免费 | 好大好猛好深好爽视频 | 高清毛片aaaaaaaaa片 | 丝瓜秋葵番茄绿巨人在线观看 | 亚洲网站大全 | 亚州免费一级毛片 | 日本免费在线 | 国产精品欧美亚洲韩国日本99 | 国产免费资源高清小视频在线观看 | 日韩在线免费 | 97国产精品久久碰碰牛牛 | 欧乱色国产精品兔费视频 | 欧美日韩亚洲高清不卡一区二区三区 | 亚洲欧美另类第一页 | 成人欧美一区二区三区 | 免看一级a一片成人123 | 甜性涩爱 | 深夜影院深a | 亚洲成年人在线观看 | 99久久国产综合精品1尤物 | 婷婷久久热99在线精品 | 五月丁香啪啪. | 2019年国产不卡在线刷新 | 高清在线观看免费 | 嫩草影院精品视频在线观看 | 国产一区二区三区高清视频 | 免费看a视频 | 成人在线免费观看视频 | 国产真实乱子伦xxxxchina | 日韩香蕉视频 | 男同精品视频免费观看网站 | 九九九九九九伊人 |