草庐IT

getter-setter

全部标签

swift - 在 getter 中返回非可选值,而在 setter 中允许可选值

classMyClass{privatevar_image:UIImagevarimage:UIImage{set{ifnewValue==nil{_image=UIImage(named:"some_image")!}}get{return_image}}}我的目标是在访问image时保证非可选值我可以在没有附加功能的情况下实现吗?即使我使用didSet/willSet它们仍然绑定(bind)到UIImage类型,我无法检查nil... 最佳答案 听起来你想使用一个隐式解包的可选。由于您的getter只是一个非可选UIImage的

swift - 具有 getter/setter 的变量在重写的存储属性上不能具有初始值

使用观察访问器创建存储属性时,我可以指定一个默认值。但是,在覆盖存储属性及其访问器时,我无法指定默认值。Variablewithgetter/settercannothaveinitialvalue.这看起来很奇怪,因为这不是带有getter/setter的计算属性,而是存储属性上的一组观察访问器!classFirstViewController:UIViewController{internalvartest:Float=32.0{willSet{}didSet{}}第一个ViewController编译正常,存储属性初始化为32.0classSecondViewController

swift - 如何将计算属性的 'setter' 设置为私有(private)?

我知道如何将存储属性的“setter”设置为私有(private)(例如publicprivate(set)varname:String="John")但是我们如何设置一个存储属性的“setter”计算属性(property)私有(private)?在本例中,变量“age”的“setter”。当我尝试将关键字private放在set(newAge){}前面时,XCode显示错误。那么是否可以将计算属性的“setter”设置为私有(private)?publicclassPerson{publicprivate(set)varname:String="John"varage:Int{ge

Swift:为什么带有 setter 的变量也必须有 getter?

快速提问:为什么?上下文:我正在使用Swinject依赖注入(inject)将small-s单例模型类添加到我的View中:defaultContainer.registerForStoryboard(MyViewController.self){responder,viewControllerinviewController.proxy=responder.resolve(MyProxy.self)!}我想通过使用计算属性来防止意外覆盖这个单例实例的风险:privatevar_proxy:MyProxy!varproxy:MyProxy{set{if_proxy==nil{_prox

swift - 惰性变量 : Cannot use mutating getter on immutable value

在dateFormatter.string(from:date)这行,编译器说:Cannotusemutatinggetteronimmutablevalue:'self'isimmutableMarkmethod'mutating'tomake'self'mutablestructviewModel{privatelazyvardateFormatter={()->DateFormatterinletformatter=DateFormatter()formatter.dateFormat="MM/dd/yyyy"returnformatter}()varlabelText:Stri

导致 exc_bad_access 的 swift setter

下面有一个简单的类importFoundationpublicclassUsefulClass:NSObject{vartest:NSNumber{get{returnself.test}set{println(newValue)self.test=newValue}}overrideinit(){super.init()self.test=5;}}我在这里初始化它importUIKitclassViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()vartestClass=Useful

java 。如何正确同步 getter 和 setter?

如果我在将由多个线程操作的对象中有多个可变属性,我理解它们应该同步。classDoggie{privateStringname;privateintage;publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}publicvoidsetAge(intage){this.age=age;}publicintgetAge(){returnthis.age;}}问题:Java中的return和赋值不是原子操作吗?由于属性不一定相互关联,因此使用同一把锁同步并不总是有意义。如何组

java - Java 中 getter 的命名约定有多重要?

我非常相信一致性,因此也相信惯例。但是,我目前正在开发一个Java框架,其中这些约定(特别是get/set前缀约定)似乎妨碍了可读性。例如,某些类将具有id和name属性,并使用o.getId()而不是o.id()似乎完全没有意义,原因有很多:类是不可变的,因此(通常)不会有相应的setter,不会混淆,get在这种情况下不传达额外的语义,并且我在整个图书馆中始终如一地使用这种get-less命名模式。我从JavaCollection类(以及JavaPlatform库中的其他类)那里得到了一些保证,它们也违反了JavaBean约定(例如,它们使用size而不是getSize等)。为了解

java - JPA 复合键与 ManyToOne 获取 org.hibernate.PropertyAccessException : could not set a field value by reflection setter of

我有一个复合键ContractServiceLocationPK由三个id(contractId,locationId,serviceId)组成在可嵌入类中键入long。使用此复合键的类ContractServiceLocation使用@MapsId注释将这些ID映射到它们的对象。这是它的样子(删除了setter/getter和不相关的属性):契约(Contract)@Entity@Table(name="Contract")publicclassContractimplementsSerializable{publicContract(){}@Id@GeneratedValuepri

java - hibernate 异常 Null 值被分配给原始类型 setter 的属性

Hibernate3.6.9遇到令人沮丧的问题。MSSQLServer2008。注意异常和奇数列索引引用。HQL查询本身:SelectrfromDataStoreReferencerjoinfetchr.containercwherer.hash=:hashandr.state=0堆栈跟踪:2012-05-1600:01:22,184[BackgroundDeletionThread]ERRORorg.hibernate.util.JDBCExceptionReporter-ThevaluesuppliedcannotbeconvertedtoBIGINT.2012-05-1600:0