2009-11-08 63 views
18

在C#中你可以設置屬性是這樣的:Java是否有自動屬性?

public int CustomerId {get;set;} 

它設置了一個自動屬性調用客戶編號,但我想知道,如果有什麼用Java相似?

+0

Java是我所說的「低級高級」語言。它是一種高級語言,因爲它具有內存管理功能,面向對象等。但是它是低級的,因爲編譯器幾乎沒有「額外」功能。即使是最簡單的模式,比如屬性,也必須由程序員手動完成(我確定在某處存在異常)。 (也許這是一種「純粹的」OOP語言?)這是一件好事,也是一件壞事。這是我將Java作爲第一語言的原因之一,因爲它會教OOP基礎知識而不會過於複雜。 – 2017-03-28 22:53:47

回答

26

不,Java目前沒有類似的東西。哎呀,Java中的屬性大多隻是get/set方法的約定,而不是編譯器真正理解的,因爲它們在C#中。工具和庫可以識別get/set模式,但語言不知道它們。 (可能在未來的Java版本中,會有更多的「正式」支持)。

但是,一些類似Java的語言(如Groovy)具有自動屬性生成功能。

+0

C#是一種「類似Java」的語言 – 2011-01-24 16:33:46

+9

@Tom:是的,在某些方面。我不確定這是相關的,雖然......它肯定不會使我寫的東西無效。 – 2011-01-24 16:34:39

+0

@JonSkeet:你能澄清你「真正理解」的含義嗎?我認爲c#的東西只是簡單的語法糖,就是同一種東西,也就是一個有幾個函數可讀/寫的字段? – Carlos 2013-11-09 18:33:35

12

不,Java中沒有這樣的事情。

但是,在Eclipse中,您可以自動爲Source> Generate Getters/Setters實現getter/setter方法。

3

你也可以做到這一點很容易,使用註解從Java語言本身Project Lombok