《Java编程思想》10.6 匿名内部类奇怪的代码
生活随笔
收集整理的這篇文章主要介紹了
《Java编程思想》10.6 匿名内部类奇怪的代码
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
剛剛看到10.6關(guān)于匿名內(nèi)部類的介紹,里面的代碼真叫我頭大,在電腦上竟然編譯不過,IDE里直接標出錯誤了,拿10.6第一段代碼來看:
public class Parcel7 {public Contents contents() {return new Contents() {private int i = 11;public int value() {return i;}};}public static void main(String[] args) {Parcel7 p = new Parcel7();Contents c = p.contents();} }這段代碼是原書里原封不動弄過來的,在返回值為Contents的方法contents()中,語句return后面跟的是Contents類的定義,可是在Eclipse里標出了錯誤,大致意思是Contents不能被作為類型,我以為是IDE的問題,于是用文本編輯器寫下來用命令行編譯,仍舊出錯,下面上圖:
非常奇怪,這一節(jié)后面的代碼似乎也無法編譯過,具體原因尚不清楚,真叫人頭大。
4月22日,我似乎找到了解決的方法,只要在外面提供一個Contents接口就可以解決問題:
interface Contents {int value(); } public class Test {public Contents contents() {return new Contents() {private int i = 11;public int value() {return i;}};}public static void main(String[] args) {Test p = new Test();Contents c = p.contents();System.out.println(c.value());} }如上面代碼,我提供了接口Contents,現(xiàn)在這個例子可以順利編譯并運行了。總結(jié)
以上是生活随笔為你收集整理的《Java编程思想》10.6 匿名内部类奇怪的代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php vendor路径,php – 如
- 下一篇: 辨析*P++,*(p++),*(++p)