返回信息流不知道有什么意义。。都是自己用
getter setter都是IDE自动生成的
想想还不如public了变量直接用得了...
这是一条镜像帖。来源:北邮人论坛 / java / #36866同步于 2014/12/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
话说有些项目里真心不想写getter和setter
icyfox
2014/12/9镜像同步32 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
要养成良好的习惯
【 在 icyfox (熊爸) 的大作中提到: 】
: 不知道有什么意义。。都是自己用
: getter setter都是IDE自动生成的
: 想想还不如public了变量直接用得了...
: ...................
函数名好长!看着好累!
【 在 fuxuemingzhu (负雪明烛) 的大作中提到: 】
: IDE生成还嫌麻烦
: 多懒啊你。
: 通过『我邮2.0』发布
: ...................
如果是getter和setter,那么以后可以改变主意,让一个属性不再是直接访问一个成员变量,而是通过一些计算获得。
但是,如果一开始用成员变量,后来把它删掉,就和原来的版本不兼容了。 https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.4.8
要不要试试Scala语言?
class Person(val name: String, val age: Int) { // 主构造函数里可以直接给参数加val或var。如果是val,则自动生成getter,如果是var,生成getter和setter
val nickName: String = name + "ちゃん" // 类里面也一样,如果是val,自动生成getter。getter的方法名字就是nickName本身。
var occupation: String = "no occupation" // 如果是var,生成一个getter叫occupation,也生成一个setter叫occupation_=。注意后面的下划线和等号是方法名的一部分。
}
object Main extends App {
val p1 = new Person("Madoka", 16)
val p2 = new Person("Homura", 16)
val n = p1.name // "Madoka"
val a = p1.age // 16
val nn = p1.nickName // "Madokaちゃん"
val o1 = p1.occupation // "no occupation"
o1.occupation = "magical girl" // Actually invokes o1.occupation_=("magical girl")
val o2 = p1.occupation // "magical girl"
}
// 如果想和Java语言交互,可以使用scala.beans.BeanProperty标注。
import scala.beans.BeanProperty
class PersonBean {
@BeanProperty
var name: String = "no name" // 不仅生成name,name_=,还生成getName和setName
}
object Main2 extends App {
val pb = new PersonBean()
pb.setName("Homura")
val n = pb.getName() // "Homura"
}
如果不想用Scala,可以试试Lombok。这是一个编译器(javac)插件,让编译器自动生成getter和setter。
import lombok.Getter;
import lombok.Setter;
class Person {
@Getter @Setter
private String name;
}
class Main {
public static void main(String[] args) {
Person p = new Person();
p.setName("Homura");
String n = p.getName(); // "Homura"
}
}
但是大多数的变量就是简单的获取 改变主意的情况真的是很少
【 在 nuanyangyang 的大作中提到: 】
: 如果是getter和setter,那么以后可以改变主意,让一个属性不再是直接访问一个成员变量,而是通过一些计算获得。
: 但是,如果一开始用成员变量,后来把它删掉,就和原来的版本不兼容了。 https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.4.8
: 要不要试试Scala语言?
: ...................
这就是为什么我们上保险,但保险行业还是可以盈利。
【 在 seaver 的大作中提到: 】
: 但是大多数的变量就是简单的获取 改变主意的情况真的是很少
Lombok这个东西
在IDE里写的时候,IDE可以识别吗?
【 在 nuanyangyang 的大作中提到: 】
: 如果是getter和setter,那么以后可以改变主意,让一个属性不再是直接访问一个成员变量,而是通过一些计算获得。
: 但是,如果一开始用成员变量,后来把它删掉,就和原来的版本不兼容了。 https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.4.8
: 要不要试试Scala语言?
: ...................