2012-04-12 58 views
0

有一点“是这个现实生活中的时刻”。为什么我们命名使用get存取器,并设置前缀:Srsly,为什么使用get和set mutators?

它将一样容易和可以理解的,只是做

myMember(myMember会员)

为setMyMember和getMyMember

有一个历史Java有这种风格的原因是什么?

+2

你的“对象”失去了我......我不确定你打算如何处理myMember(myMember Member)。 – Makoto 2012-04-12 01:57:01

+0

你可以举个实际的例子吗? – 2012-04-12 01:57:25

+0

@Makato我想他指的是为C#访问http://msdn.microsoft.com/en-us/library/aa287786%28v=vs.71%29.aspx – 2012-04-12 02:03:10

回答

7

的get *和*设置命名的风格JavaBeans规范中指定,并使用反射一些图书馆希望使用这种风格。例如,Jackson mapper可以使用get/setters将一个java对象序列化为JSON,而无需任何附加注释;如果你使用不同的命名风格,你必须告诉它你的属性在哪里。

请注意,其他一些编程语言使用不同的样式。例如,Perl库通常使用一个->someProperty() getter和->someProperty($newValue) setter。

+0

另一个例子中,Objective-C语言(如iPhone开发)使用'[Object propertyName]'作为getter,'[set setPropertyName:value]'作为设置器 - 因此每种语言的标准都不相同。 – wattostudios 2012-04-12 02:53:46

+0

这不仅仅是“一些图书馆”。许多框架和JEE技术(如JSP/JSTL)都需要JavaBeans约定。 – 2012-04-12 03:12:56