使用"get"作为访问器方法名称中的前缀的优点/原因

bgw*_*bgw 7 java oop

我知道在Java中,通常的做法是使用"get"作为访问器方法的前缀.我想知道这是什么原因.它纯粹是为了能够预测它的回归吗?

澄清一下:在某些java类(例如String)中,可以通过调用"length()"而不是" size()" 来访问类似length的变量.为什么这些方法是这样写的,但其他像" getSomeVariable()"?

感谢您的时间.

编辑:很高兴看到我并不孤单关于混乱以及大小和长度变量等问题

Chs*_*y76 8

'get'前缀(或'is'用于返回布尔值的方法)是JavaBean规范的一部分,它在整个java中使用,但主要在Web UI中的视图中使用.

length()和size()是javabean之前的历史文物; 很多UI开发人员都对Collection有一个size()方法而不是getSize()


Rap*_*Rap 7

因为属性是名词而方法是动词.它是bean模式的一部分,它是完善的,因此任何人都可以使用你的类.

说:

String txt="I have " + car.GetFuelLevel() + " liters of petrol.";
Run Code Online (Sandbox Code Playgroud)

要么 ...

String txt="I have " + car.FuelLevel + " liters of petrol.";
Run Code Online (Sandbox Code Playgroud)

但不是 ...

String txt="I have " + car.FuelLevel() + " liters of petrol.";
Run Code Online (Sandbox Code Playgroud)

我的意思是,说"嘿,车.给我的燃料水平"是没有意义的.但要说"嘿,开车.去GetFuelLevel吧." 那更自然了.

现在,为什么他们用String.length()和其他人打破排名?那也一直困扰着我.


Tom*_*ine 5

get前缀是如果你也有特别有用set,add,remove,等方法.当然,拥有一个充满gets或充满sets 的界面通常会更好.如果几乎每种方法都有get它就会变成噪音.所以,我会删除getfor immutables和setfor builders.对于"基本"类型,例如集合和字符串,这些小词也很吵,IMO.