Dart代码运行时print输出正常,但第4行返回null问题求助
问题分析与解决
你的代码核心问题是setter方法没有给私有变量_armor赋值——虽然设置ferrari.armor = 85时,条件判断通过并打印了true,但类内部的_armor始终是初始的null,所以调用get armor时返回的自然是null。
修复后的代码如下:
main() { var ferrari = Car(); ferrari.armor = 85; print(ferrari.armor); // 现在会输出85 } class Car { int? _armor; int? get armor { return _armor; } set armor(int? armor) { if (armor != null && armor < 100) { _armor = armor; // 新增赋值逻辑,更新私有变量 print(true); } else { _armor = null; // 不符合条件时可选择重置为null,或按需处理 print(false); } } }
简单说明:
- Setter方法的核心作用是修改类的内部状态,你之前只做了条件判断和打印操作,遗漏了对
_armor的赋值步骤。 - 加上
_armor = armor;后,传入的有效值会被保存到私有变量中,getter就能正确返回对应的值了。
内容的提问来源于stack exchange,提问作者Mostafa Pakizeh
相关产品推荐
相关产品推荐

