首页 / 知识
关于getter setter :(否)Java中的属性?
2023-04-15 19:41:00

(no) Properties in Java?因此,直到最近我才故意保留Java n00b的身份,而我的第一次实际接触却引起了轻微的震惊:Java没有C#样式属性! 好吧,我可以接受。 但是,我也可以发誓我已经在一个代码库中看到了Java中的属性获取器/设置器代码,但是我不记得在哪里。 那是如何实现的? 是否有语言扩展? 它与NetBeans有关吗?
Java中有一个用于getter和setter的"标准"模式,称为Bean属性。基本上,任何以 例如:
如果您提出要求,大多数Java IDE都会为您生成这些方法(在Eclipse中,就像将光标移至某个字段并按ctrl-1,然后从列表中选择选项一样简单)。
就其价值而言,出于可读性考虑,您实际上也可以使用
我很惊讶没有人提到龙目岛项目
是的,当前在Java中没有属性。还有一些其他缺少的功能。 因此,如果您使用的是龙目岛:
该代码还将生成
您可以在此处获取有关lombok吸气器和装夹器的更多信息。
Lombok已与IDE很好地集成在一起,因此它将显示生成的方法,例如它们是否存在(建议,类内容,声明和重构)。 为Java 7提出了" Java属性支持",但并未将其纳入语言。 如果有兴趣,请参阅http://tech.puredanger.com/java7#property以获取更多链接和信息。
这类似于C#属性。这是http://projectlombok.org/ Bean约定是这样编写代码:
在JVM上的其他一些语言(例如Groovy)中,您会获得类似于C#的可覆盖属性,例如
可通过简单的 您可能不需要" get"和" set"前缀,以使其看起来更像属性,您可以这样做:
杰弗里·里希特(Jeffrey Richter)通过C#编写的CLR :(我认为这可能是为什么仍未在JAVA中添加属性的原因)
如果需要,大多数Java IDE会自动为您生成getter和setter代码。有许多不同的约定,像Eclipse这样的IDE允许您选择要使用的约定,甚至可以定义自己的约定。 Eclipse甚至包括自动重构,它允许您将属性包装在getter和setter中,它将修改直接访问该属性的所有代码,以使其使用getter和/或setter。 当然,Eclipse只能修改它知道的代码-这样的重构可能会破坏您拥有的任何外部依赖关系。 我的Java经验也不高,因此任何人都可以纠正我。但是AFAIK的一般约定是编写两个类似的方法:
Java中没有property关键字(就像您可以在C#中找到它一样),拥有1个单词getter / setter的最接近方法是类似于C ++:
我只是发布Java 5/6注释和注释处理器来帮助实现这一点。 查看http://code.google.com/p/javadude/wiki/Annotations 该文档现在有点轻巧,但是quickref应该可以理解这个想法。 基本上,它使用getter / setter(以及许多其他代码生成选项)生成超类。 示例类可能看起来像
有更多可用的示例,并且生成的代码中没有运行时依赖项。
给我发送电子邮件,如果您尝试它并发现它有用的话! 如果您使用的是eclipse,则它具有为内部属性自动生成getter和setter方法的功能,它可以是一种有用且省时的工具。
对我来说,问题有两个:
这是我想重新使用的一种简单分配。不必使用"方法"调用语法。谁能提供有关Java发生了什么的答案? 如前所述,eclipse集成开发环境(IDE)通常可以自动创建访问器方法。 您也可以使用NetBeans做到这一点。
要为您的类创建访问器方法,请打开一个类文件,然后在源代码编辑器中的任意位置单击鼠标右键,然后选择菜单命令"重构","封装字段"。 祝好运, |
最新内容
相关内容
linux命令查看包属性?
linux命令查看包属性?,时间,系统,信息,状态,命令,文件,通讯录,管理,情况,标准,Linux文件相关命令命令一:cat cat命令应该是在Linux中查看文件内linux内核属性命令?
linux内核属性命令?,系统,地址,时间,信息,标准,管理,数据,工作,百分比,内核,一般优化linux的内核,需要优化什么参数1、说起优化,其实最好的优化pythonPandas Series对象有哪些属
pythonPandas Series对象有哪些属性?,工具,数据,数字,分析,培训,属性,数据类型,数组,对象,索引,想必大家都知道pandas,它是基于Numpy的一种工具如何在Python中定义类方法和修改类
如何在Python中定义类方法和修改类属性?,代码,方法,培训,对象,实例,定义,结果,示例,赋值,属性,Python中的类还可定义使用@classmethod修饰的类Python __dict__属性详解
Python __dict__属性详解,代码,公用,信息,数据,培训,管理,属性,对象,函数,结果,我们都知道Python一切皆对象,那么Python究竟是怎么管理对象的Python查看模块中的属性
Python查看模块中的属性,名称,标准,环境,培训,属性,模块,对象,函数,定义,变量,内置函数dir可用于列出某模块中定义了哪些属性(全局名称空间)Python之有妙用的__name__属性
Python之有妙用的__name__属性,代码,入口,培训,文件,模块,程序,属性,妙用,时候,表示,前面说了,py文件分两种:用于执行的程序文件和用于导入的模Python 类的私有属性和方法
Python 类的私有属性和方法,私有化,培训,开头,变量,函数,模块,属性,目的,方法,更多,在Python中,通过单下划线”_”来实现模块级别的私有化,一般Python 类和实例的属性
Python 类和实例的属性,属性,实例,名称,培训,名字,对象,字符串,方法,列表,变量,类属性.类属性是可以直接通过“类名.属性名”来访问和修改。.python如何看变量属性
python如何看变量属性,培训,属性,函数,变量,参数,对象,方法,列表,范围内,字典,1、使用dir()函数查看dir()函数不带参数时,返回当前范围内的变python如何打印一个对象的全部属性
python如何打印一个对象的全部属性,代码,公用,情况,培训,属性,对象,字典,全部,方法,动态,python打印对象的全部属性,可以使用__dict__方法。遇python如何判断对象的某个属性
python如何判断对象的某个属性,培训,异常,名称,方法,对象,属性,特性,参数,逻辑,以上,在python判断某个对象是否具有某属性可以使用以下方法方