Java調(diào)用匿名內(nèi)部類(lèi)的方法 java局部?jī)?nèi)部類(lèi)問(wèn)題該怎么解決?
java局部?jī)?nèi)部類(lèi)問(wèn)題該怎么解決?其實(shí)這是因?yàn)榫植績(jī)?nèi)部類(lèi)只能訪問(wèn)final類(lèi)型的局部變量,所以在返回這個(gè)類(lèi)的時(shí)候,由于局部?jī)?nèi)部類(lèi)構(gòu)造方法需要傳遞一個(gè)參數(shù),并且必須給出一個(gè)字符串,這就太多了,所以dii
java局部?jī)?nèi)部類(lèi)問(wèn)題該怎么解決?
其實(shí)這是因?yàn)榫植績(jī)?nèi)部類(lèi)只能訪問(wèn)final類(lèi)型的局部變量,所以在返回這個(gè)類(lèi)的時(shí)候,由于局部?jī)?nèi)部類(lèi)構(gòu)造方法需要傳遞一個(gè)參數(shù),并且必須給出一個(gè)字符串,這就太多了,所以diit和X被依次賦給s,X最終被分配給s而不是doit。因此,如果有S的輸出,它就是常量x的值,這里的doit字符串只是一個(gè)字符串,一個(gè)多余的參數(shù),用于返回接口類(lèi)對(duì)象,以便不報(bào)告錯(cuò)誤。
Java能反射實(shí)現(xiàn),內(nèi)部接口和內(nèi)部抽象類(lèi)作為參數(shù)的方法嗎?
主題不是很清楚,但是java反射可以獲得內(nèi)部類(lèi)和內(nèi)部接口,也可以作為參數(shù)傳入。代碼如下:
一個(gè)具有內(nèi)部類(lèi)和接口的類(lèi)。
測(cè)試類(lèi):您可以獲得通用屬性和方法、內(nèi)部類(lèi)和接口,并初始化內(nèi)部類(lèi)。無(wú)法實(shí)例化接口。但它可以由外部類(lèi)實(shí)現(xiàn),然后實(shí)例化。
測(cè)試結(jié)果如下