问题标签 [setter]

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.

0 投票
2 回答
701 浏览

javascript - Javascript 设置器/获取器

上面的代码有望为对象作者的任何提供的属性(在数组中)生成 setter/getter。

但是当我调用下面的代码时,名字和姓氏都是 olsen .. 我做错了什么?

0 投票
1 回答
1365 浏览

java - How do I alias the scala setter method 'myvar_$eq(myval)' to something more pleasing when in java?

I've been converting some code from java to scala lately trying to teach myself the language.

Suppose we have this scala class:

Now I want to access it from java so I can't use dot-notation like I would if I was in scala.

So I can get my var's contents by issuing:

and set it via:

This holds true cause our Person Class looks like this in javap:

Yes, I could write my own getters/setters but I hate filling classes up with that and it doesn't make a ton of sense considering I already have them -- I just want to alias the _$eq method better. (This actually gets worse when you are dealing with stuff like antlr because then you have to escape it and it ends up looking like person.name_\$eq("newname");

Note: I'd much rather have to put up with this rather than fill my classes with more setter methods.

So what would you do in this situation?

0 投票
1 回答
90 浏览

php - 什么是阵列可移植性?

从这个页面:

http://www.doctrine-project.org/documentation/manual/1_2/en/working-with-models#dealing-with-relations:creating-related-records

您可以看到它说$obj['property'];是在 Doctrine 中引用对象属性以实现数组可移植性的推荐方式。

我以前从未听说过这个词,谷歌也没有得出有用的结果。

那是什么?

0 投票
10 回答
39232 浏览

javascript - javascript数组上的getter/setter?

有没有办法在数组上获取/设置行为?我想象这样的事情:

0 投票
1 回答
1580 浏览

c# - 将 .NET XmlSerializer 与 get 属性和 setter 函数一起使用

我正在尝试XmlSerializer从 C# 中使用来保存一个类,该类具有一些由属性读取的值(代码只是对字段值的简单检索)但由 setter 函数设置(因为如果值更改,则会调用一个委托)。

我目前正在做的就是这种事情。预期用途是使用InT属性来读取值,并使用SetInT来设置它。设置它有副作用,所以这里的方法比属性更合适。XmlSerializationOnly_InT仅为(因此得名)的利益而存在XmlSerializer,不应被普通代码使用。

这很有效,很容易做到,并且 XML 文件看起来像您期望的那样。虽然是体力劳动,而且有点丑,所以我只是有点满意。我真正想要的是能够告诉 XML 序列化使用属性读取值,并使用 setter 函数设置它。那我就完全不需要XmlSerializationOnly_InT了。

我似乎通过以这种方式区分属性集和设置器函数来遵循标准做法,所以我确定我不是唯一遇到过这种情况的人(尽管谷歌建议我可能是)。在这种情况下,其他人做了什么?有没有一些简单的方法可以说服他们XmlSerializer更好地处理这类事情?如果没有,是否有其他简单的方法可以做到这一点?

0 投票
5 回答
1348 浏览

c# - 无副作用二传手的方法

我想就无副作用的二传手能走多远征求你的意见。

考虑以下示例:

请注意,日期和持续时间的值仅供参考。

因此,将 setter 用于任何属性StartFinish因此Duration会更改其他属性,因此不能被视为无副作用。同样适用于Rectangle类的实例,其中 setter for正在更改等X的值。TopBottom

问题是在使用 setter(具有更改逻辑相关属性的值的副作用)和使用方法(无论如何都不能更具描述性)之间划清界限。例如,定义一个调用的方法SetDurationTo(Duration duration)也不反映 Start 或 Finish 将被更改。

0 投票
2 回答
456 浏览

ruby - Ruby - How to remove a setter on an object

Given a class like this:

Suppose I can't modify the original source code of class B. How might I go about removing the setter on the class variable var? I've tried using something like B.send("unset_method", "var="), but that doesn't work (nor does remove_method, or overwriting that method with a var= method that doesn't do anything). Any ideas?

0 投票
2 回答
1915 浏览

actionscript-3 - 当 getter/setter 具有不同的可见性时的模糊参考

以下代码在编译时引发了对的模棱两可的引用:value

我怀疑编译器中存在某种错误,尽管我实际上并没有阅读 ECMA 标准。

在有人问这些问题之前:

  • 私人二传手确实有意义。
  • 自定义名称空间也存在歧义(这是我面临的问题)。
0 投票
7 回答
5449 浏览

java - Java - 是否应该通过 getter 和 setter 方法在构造函数中访问私有实例变量?

我知道私有实例变量是通过它们的公共 getter 和 setter 方法访问的。

但是当我在 IDE 的帮助下生成构造函数时,它会直接初始化实例变量,而不是通过它们的 setter 方法来初始化它们。

Q1。因此,我应该更改 IDE 为构造函数生成的代码,以通过它们的 setter 方法初始化这些实例变量。

Q2。如果是,那么为什么 IDE 不以这种方式生成构造函数代码?

============================= 已编辑==================== ====================

  • 我使用 Eclipse 和 Netbeans IDE

  • 这是一个普遍的问题。但是正如@Lords 所问的那样,答案是否取决于我们的构造函数是公共的还是受保护的,还是包私有的还是私有的?

0 投票
5 回答
75268 浏览

objective-c - Objective-C getter/setter

我正在尝试通过 Objective-C 教程来学习。书中有这个例子:

我想,“嘿,XYPoint 对象没有 getter/setter。不过代码确实有效。” 现在我可能会回答我自己的问题:)。

我认为这是因为“原点”已经是一个指针,而在“宽度”和“高度”的引擎盖下发生的事情是要创建一个指向它们的指针..

我是对的,还是我在说 BS :) ??

我只是不明白。这是主要的:

这是 Rectangle 对象:

我不明白的是这条线主要是:myRect.origin = myPoint;我没有为它做一个二传手..

顺便说一句,感谢您的快速回复