![]() |
1
12
这在JavaBean框架模型中是特别必要的,但通常不是强制性的。 当setter要“swith”一个值时,可以使用不带参数的setter。
例如,可以将“check”布尔属性设置为true。 因此,即使它不是JavaBean意义上的“setter”,您也可以想象setter用于其他目的。 不止一个论点 ,例如索引属性(索引属性支持一系列值。每当读取或写入属性时,您只需指定一个索引来标识所需的值。)
在你的情况下,一个有效的方法是
runtime exception
或者你可以考虑你的财产 约束性质 并添加一个非运行时异常。 需要受约束的属性设置器方法来支持PropertyVetoException。 此文档向受约束属性的用户说明可能会尝试更新 否决。 因此,简单的受约束属性可能如下所示:
|
![]() |
2
5
Setter完全可以“清理”其参数,如果无效,则抛出异常。 |
![]() |
3
2
如果您认为其他代码应该进行验证,但不应该设置错误的值,那么也可以在setter中使用断言。 |
![]() |
4
1
Joshua Bloch(ISBN-13:978-0-321-35668-0)在《有效Java第二版》一书中说,对于对象创建,最好使用构建器模式,而不是bean约定。
例如(bean模式):
生成器模式的用法:
生成器模式的实现:
|
![]() |
Phox · 为NSOperationQueue创建Setter 7 年前 |
![]() |
Rich · 用getter和setter在JavaScript中封装 7 年前 |
![]() |
Mumfordwiz · python属性的不同setter 9 年前 |