Java內(nèi)部類(lèi)的全限定名規(guī)律代碼示例
簡(jiǎn)述:
由于最近遇到不少需要反射的類(lèi),而其中不乏內(nèi)部類(lèi),在此總結(jié)一下內(nèi)部類(lèi)的全限定名的規(guī)律。
成員內(nèi)部類(lèi)
測(cè)試結(jié)果表明,無(wú)論成員內(nèi)部類(lèi)是否為靜態(tài),其全限定名都使用如下命名方法:
包名.外部類(lèi)名$內(nèi)部類(lèi)名
測(cè)試代碼:
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());
}
}
打印結(jié)果:
classcom.test.InnerClassTest$StaticInner
classcom.test.InnerClassTest$Inner
匿名內(nèi)部類(lèi)
匿名內(nèi)部類(lèi)的全限定名滿足如下規(guī)律:
包名.外部類(lèi)名$由1開(kāi)始的正整數(shù)-按照類(lèi)裝載順序依次排列
測(cè)試代碼
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());
}
}
打印結(jié)果:
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
局部?jī)?nèi)部類(lèi)
局部?jī)?nèi)部類(lèi)全限定名使用如下命名方式:
包名.外部類(lèi)名$由1開(kāi)始的正整數(shù)后跟局部類(lèi)名-其中數(shù)字部分是局部類(lèi)在外部類(lèi)上下文出現(xiàn)的先后順序
測(cè)試代碼
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());
}
}
上例打印結(jié)果:
classcom.test.InnerClassTest$1Inner
classcom.test.InnerClassTest$2Inner
在測(cè)試代碼的基礎(chǔ)上在交換main中functionA、B位置后的結(jié)果:
classcom.test.InnerClassTest$2Inner
classcom.test.InnerClassTest$1Inner
在測(cè)試代碼基礎(chǔ)上交換functionA、B聲明位置的結(jié)果:
classcom.test.InnerClassTest$2Inner
classcom.test.InnerClassTest$1Inner
總結(jié)
以上就是本文關(guān)于Java內(nèi)部類(lèi)的全限定名規(guī)律代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Java如何向主函數(shù)main中傳入?yún)?shù)
這篇文章主要介紹了Java如何向主函數(shù)main中傳入?yún)?shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Java簡(jiǎn)單實(shí)現(xiàn)約瑟夫環(huán)算法示例
這篇文章主要介紹了Java簡(jiǎn)單實(shí)現(xiàn)約瑟夫環(huán)算法,簡(jiǎn)單描述了約瑟夫環(huán)問(wèn)題,并結(jié)合實(shí)例形式分析了Java實(shí)現(xiàn)約瑟夫環(huán)的具體操作技巧,需要的朋友可以參考下2017-09-09
spring mvc4中相關(guān)注解的詳細(xì)講解教程
這篇文章主要給大家介紹了關(guān)于spring mvc4中相關(guān)注解的相關(guān)資料,其中詳細(xì)介紹了關(guān)于@Controller、@RequestMapping、@RathVariable、@RequestParam及@RequestBody等等注解的相關(guān)內(nèi)容,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-06-06
Java util.List如何實(shí)現(xiàn)列表分段處理
這篇文章主要介紹了Java util.List如何實(shí)現(xiàn)列表分段處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
18個(gè)Java8日期處理的實(shí)踐(太有用了)
這篇文章主要介紹了18個(gè)Java8日期處理的實(shí)踐(太有用了),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
Post請(qǐng)求參數(shù)是數(shù)組或者List時(shí)的請(qǐng)求處理方式
這篇文章主要介紹了Post請(qǐng)求參數(shù)是數(shù)組或者List時(shí)的請(qǐng)求處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
RocketMQ整合SpringBoot實(shí)現(xiàn)生產(chǎn)級(jí)二次封裝
本文主要介紹了RocketMQ整合SpringBoot實(shí)現(xiàn)生產(chǎn)級(jí)二次封裝,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
javaweb如何使用華為云短信通知公共類(lèi)調(diào)用
這篇文章主要介紹了javaweb使用華為云短信通知公共類(lèi)調(diào)用的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Spring?BeanDefinition收集過(guò)程示例詳解
這篇文章主要為大家介紹了Spring?BeanDefinition收集過(guò)程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08

