JavaBean的意义何在?
JavaBean中将属性定义为私有,转而提供getter、setter。这有什么意义?
为什么不直接将属性设为public?getter、setter和公共属性有什么区别(除了能在里面干点别的)?甚至像Lombok那样的,新人表示困惑,望大佬指点,谢谢!
JavaBean中将属性定义为私有,转而提供getter、setter。这有什么意义?
必须通过类上的方法
去修改,这才能叫管理,如果全部是 public
, 拿到类实例
就能随便改那管理了个毛线。举个实际点的例子,大型项目上排查问题经常需要定位哪里修改了某个状态,这个时候作为这个类来说,它是一问三不知的,那你作为开发者就能去搜代码,看哪些地方访问了这个属性,能找得你头皮发麻,但有了 getter/setter
, 外部对类上属性的访问和修改对于类来说才是可感知的,你只需要在 getter/setter
中打断点,跟下调用栈直接就能定位到问题点所在遵循开闭原则
,对扩展开放,对修改关闭。对于外部来说,你不能直接修改类中的私有成员,这是体现的对修改关闭
;提供一个 setter
来让外部修改私有成员的值,这体现的是对扩展开放
。这里注意理解,本来外部不能修改,但你提供了一个方法让外部可以改,这就是一种扩展支持你能直接改
和 我让你能改
完全是两个层面的事情,这里面涉及到一个叫权限控制
的概念groovy解决你所有烦恼,什么Lombok在groovy面前简直弱爆了
Lombok 只是简化了 JavaBean 类的创建,自动生成了 getter, setter与 toString, 省了许多事, 比如极端情况: 一个类有几十个属性, 那就要一百多个方法
将属性设为私有并提供 getter 和 setter 的意义在于:
问题内容: 我已经和Lombok一起使用并积极使用了2个月。使用Java时,我会更加熟悉。但是,我第一次遇到了该语言的以下语法结构: 这是什么意思,如何编译? 问题答案: 这是一种实验性的Lombok语法,其创建目的是在引用多个注释时支持间接层,而不是使用。 语法有点奇怪;要使用这3种功能中的任何一种,您必须在中包装要应用于构造函数/方法/参数的注释。要应用多个注释,请使用。注释本身显然也可以具有
主要内容:JavaBean示例,JavaBean属性JavaBean 是可以重复使用的一个组件,是遵守 JavaBean API 规范的 Java 类。 一般情况下,JavaBean 要满足以下要求: JavaBean 是一个公共类,并提供无参公有的构造方法 需要被序列化并且实现了 Serializable 接口 属性私有化 具有公共的访问属性的 getter 和 setter 方法 Java 之父 James Gosling 在设计 Java 语
JavaBean是特殊的Java类,使用J ava语言书写,并且遵守JavaBean API规范。 接下来给出的是JavaBean与其它Java类相比而言独一无二的特征: 提供一个默认的无参构造函数。 需要被序列化并且实现了Serializable接口。 可能有一系列可读写属性。 可能有一系列的"getter"或"setter"方法。 JavaBean属性 一个JavaBean对象的属性应该是可访
下面是Lombok的注释的java文档: 如果加上一个参数,lombok将在方法/构造函数主体的开头插入一个空检查,抛出一个{@code NullPointerException},参数名作为消息。如果放在字段上,任何为该字段赋值的生成方法也将生成这些空检查。请注意,任何名为{@code NonNull}且带有任何大小写和任何包的注释都将导致为生成的方法生成nullchecks(并且注释将被复制到
有没有办法为自定义生成的代码? 考虑以下简单类: 我希望Lombok为生成Setter,就像我在上面的示例中实现的那样。这应该只在用注释的类和作为的属性上完成。其他属性的Setter,在本例中应该像往常一样生成。 是否有办法根据这些标准定制Setter代码的生成?
我有一个.jrxml文件,我想将代码中的一些参数传递给它。我有一个<code>Orde</code>r类,它具有<code>双倍价格</code<、<code>int quantity</code〕和<code>Product Product</code’等字段。情况很简单,当我需要传递价格或数量时,我只需要这样做: 当我尝试传递 时出现问题。我尝试了类似的东西: 还有许多其他的,但我一直得到错误