问题标签 [getter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在类方法中访问类属性的好习惯是什么?
我总是想知道从 Java 中的类方法访问类属性的最佳方法。
您能否快速说服我以下 3 种解决方案中的哪一种(或完全不同的一种:P)是一种好习惯?
java - 将字段访问更改为 getter/setter 方法访问
是否可以将 Java 中的外部类字段访问自动更改为 getter / setter 调用,并隐藏暴露的字段?我正在使用 Javabeans,并且我希望在字段属性更改时更改通知(这很重要)。
我发现cglib可以自动将属性更改调用插入到 PropertyChangeSupport 字段。我知道Project Lombok,但这似乎修改了源代码,另外不支持字段访问修改。也许通过对 Lombok 的修改,这可以得到支持,或者是否有其他解决方案?
提前干杯和感谢,克里斯
objective-c - 为什么我不能通过 setter 初始化一个类?
如果我有一个名为轮胎的自定义类:
我在我的视图控制器中合成了一个 setter 和 getter:
它在[self setFrontLeft:[[Tires alloc] init]]回来后死亡。它编译得很好,当我运行调试器时,它实际上一直通过轮胎上的init方法,但是一旦它回来,它就死了,视图永远不会出现。但是,如果我将viewDidLoad方法更改为:
它工作得很好。我可以放弃 setter 并直接访问frontLeft变量,但我的印象是我应该尽可能多地使用 setter 和 getter,从逻辑上讲,setFrontLeft方法似乎应该有效。
这带来了一个额外的问题,我的同事在这些方面一直在问(我们都是 Objective-C 的新手);如果您与那些 setter 和 getter 属于同一类,为什么还要使用 setter 和 getter。
c# - 在内部使用属性有什么好处?
当从类外部访问成员时,封装显然是有用且必不可少的,但是当在内部引用类变量时,调用它们的私有成员还是使用它们的 getter 更好?如果您的 getter 只是返回变量,是否有任何性能差异?
properties - Getter 和 Setter 应该做什么和不应该做什么
最近我在 Getters 和 Setters 上遇到了很多不同的意见,所以我想我应该把它变成它自己的问题。
我之前的一个问题收到了立即评论(后来被删除),指出 setter 不应该有任何副作用,并且SetProperty
方法将是更好的选择。
事实上,这似乎也是微软的观点。但是,它们的属性通常会引发事件,例如设置Resized
表单Width
或Height
属性时。OwenP还声明“你不应该让属性抛出异常,属性不应该有副作用,顺序不重要,并且属性应该相对快速地返回。”
然而Michael Stum指出,在 setter 中验证数据时应该抛出异常。如果您的设置器没有抛出异常,您如何有效地验证数据,正如这个问题的许多答案所暗示的那样?
当您需要像几乎所有 Microsoft 的 Control 一样发起事件时怎么办?那么,您是否不受订阅您活动的人的摆布?如果他们的处理程序执行大量信息,或者自己抛出错误,你的 setter 会发生什么?
最后,getter 中的延迟加载怎么样?这也可能违反以前的指导方针。
什么可以放在 getter 或 setter 中,什么应该只保留在访问器方法中?
编辑:
来自MSDN 中的另一篇文章:
和方法一般与其他方法没有区别
get
。set
它们可以执行任何程序逻辑、抛出异常、被覆盖以及使用编程语言允许的任何修饰符进行声明。但是请注意,属性也可以是静态的。get
如果一个属性是静态的,那么和set
方法可以做什么是有限制的。有关详细信息,请参阅您的编程语言参考。
c# - C# - 当每个继承的类都需要来自基类的getter时我应该怎么做,但setter只适用于一个继承的类
我有一个名为 WizardViewModelBase 的抽象类。
我所有的 WizardXXXViewModel 类都继承自基本抽象类。
底座有一个带有吸气剂的属性。每个子类都需要并覆盖该字符串
属性作为 ViewModel 的 DisplayName。
只有一个名为 WizardTimeTableWeekViewModel 的 ViewModel 需要一个设置器,因为我必须设置
ViewModel 是 A 周还是 B 周的时间表。使用 2 个 ViewModel,例如
WizardTimeTableWeekAViewModel 和 WizardTimeTableWeekBViewModel 将是多余的。
我不想覆盖所有其他类中的设置器,因为它们不需要设置器。
我可以以某种方式告诉子类它不需要覆盖设置器吗?
或者有什么其他建议?
有了接口,我可以自由使用 getter 或 setter,但有很多空的 setter
属性不是我的选择。
有趣..我刚刚想到如果我真的需要设置 WizardPages 的所有 DisplayNames 与我首先说的相反,会发生什么。也许我不应该因为本地化而对 getter 中的字符串进行硬编码并将字符串放在资源文件中,然后我需要在每个子类中的任何地方都有一个 setter XD
java - Java for-each on getter
如果 javac 做我认为的,以下几行将产生相同的性能:
是这样还是不是?或者它可能是特定于实现的?如果是这样:有人知道 GWT 吗?
c++ - 公共数据成员与 Getters、Setters
我目前在 Qt 和 C++ 中工作。我有具有私有数据成员和公共成员函数的类。我为类中可用的数据成员提供了公共 getter 和 setter。
现在我的问题是,如果我们的类中有数据成员的 getter 和 setter,那么将这些数据成员设为私有有什么意义呢?我同意在基类中有私有数据成员听起来合乎逻辑。但除此之外,拥有私有成员以及它们的 getter 和 setter 对我来说似乎不合逻辑。
或者相反,我们可以将所有变量设为公开,这样就完全不需要 getter 和 setter 了吗?拥有这些是一个好习惯吗?我知道拥有私有成员可以确保数据抽象,但拥有 getter 和 setter 实际上可以很容易地访问这些变量。欢迎任何有关此的指示。
c++ - 用于类特定属性或外部结构的 C++ 虚拟方法
我有一组类都派生自一个公共基类。我想多态地使用这些类。该接口定义了一组 getter 方法,它们的返回值在给定的派生类中是恒定的,但从一个派生类到另一个派生类不同。例如:
等等
这是一种常见的做事方式吗?如果性能是一个重要的考虑因素,我最好将属性拉到外部结构中,例如:
在每个实例中存储 a Vals*
,并重写Base
如下?
额外的取消引用本质上与 vtable 查找相同吗?这种情况的成语是什么?这两种解决方案都是愚蠢的吗?非常感谢任何见解
javascript - 如何使用 ECMAScript 5 定义默认的 getter 和 setter?
如何为原型指定默认 getter?对于默认 getter,我的意思是调用 if 的函数obj.undefinedProperty123
。
我试过 Object.prototype.get = function(property) {..} 但在这种情况下不会调用它。