void main(){
Animal a1 = Animal();
Cat c1 = Cat();
AnimalCage ac1 = AnimalCage();
ac1.setAnimal(a1); //error: The method 'setAnimal' isn't defined for the type 'AnimalCage'.
}
class AnimalCage{
Animal? _animal;
set setAnimal(Animal animal){
print('animals setter');
_animal = animal;
}
}
class Animal {
}
我收到上述錯誤,但我不知道出了什么問題。
使用setter有什么問題嗎?
如果我將 setAnimal 定義為方法,錯誤就會消失,但我認為 setter 沒有問題。
uj5u.com熱心網友回復:
因為setAnimal它是一個 setter,所以你不能像使用方法一樣使用它。
只需這樣做:
ac1.setAnimal = a1;
為避免混淆,您不應在 setter 名稱前加上set,只需使用您想要設定的名稱,如下所示:
set animal(Animal animal){
print('animals setter');
_animal = animal;
}
然后像這樣使用setter:
ac1.animal = a1;
如果您真的想使用方法語法,請改為創建一個方法,如下所示:
void setAnimal(Animal animal){
print('animals setter');
_animal = animal;
}
然后你可以使用它:
ac1.setAnimal(a1);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/490337.html
標籤:镖
