“嗨,阿米戈!”
“如您所知,匿名內部類不能有構造函數。”
“是啊。不太方便。構造函數真的很重要。”
“俗話說,只要你想得夠壞,沒有什麼是不可能的。”
“請記住,靜態變量沒有靜態構造函數,但有一個靜態初始化器——靜態塊。”
“嗯,我記得。”
“匿名內部類具有完全相同的初始值設定項,只是它不是靜態的。”
例子
class Car
{
public ArrayListcreatePoliceCars(int count)
{
ArrayList result = new ArrayList();
for(int i = 0; i < count; i++)
{
final int number = i;
result.add(new Car()
{
int policeNumber;
{
policeNumber = number;
}
});
}
return result;
}
}
“這次我用紅色突出顯示了匿名內部類代碼,用紫色突出顯示了它的初始化程序(實際上是它的構造函數)。‘構造函數’有一個主體,但沒有方法簽名:”
期待 | 現實 |
---|---|
|
|
“你可以在這樣的類中聲明變量並在初始化器中初始化它們。”
“太好了,現在他們的限制少了很多。”
“有了這個,我們開始了解內部類。我希望你喜歡它。”
“很多。Kim、Rishi,尤其是你,Ellie 的課程簡直是一流的。”
“真是個甜言蜜語!繼續……”
GO TO FULL VERSION