2017-03-17 59 views
3

我有這Setting.class它有幾個變量。我是否需要創建一百個getter和setter?

private int timeRemember, timeConcentration; 
private boolean hearts, spades, diamonds, clubs; 

我知道我應該爲他們創建getter和setter,但它需要50行代碼。 如果我有更多的變量,比方說40,它會是200左右。

我的問題是 - 每個人都這樣做?或者有什麼我不知道的?

+2

你在用什麼IDE ??。你可以爲你的領域生成所有的getter和setter。 –

+0

這可能也有幫助https://projectlombok.org/ – Philippe

+1

我知道我可以,我做到了。我只是好奇,如果這是人們的行爲。 – mafiozorek

回答

0

是否你需要你的類變量的getters和setters取決於你。這取決於你的代碼中其他地方如何使用這個類。如果你不確定,你可以隨時添加getters和setter,因爲你在開發過程中發現你需要它們。

但是,許多現代Java IDE允許您自動生成getter(setter)(例如Eclipse或IntelliJ)。在IntelliJ中,您可以使用代碼>生成...菜單執行此操作。

+3

我喜歡我得到兩張倒票,但沒有評論。在我的答案中看不到任何與時代矛盾的東西,除了沒有提及課程設計。 – kunruh

+0

我剛纔建議不要有字段,單個Map可以將類中的所有值用鍵定義爲最終變量。然後,我意識到,只是爲了打開這種可能性,我會被低估。總是有一個「聰明」的人,準備好指出「正確」的方式去做沒有任何理由的事情。 –

6

如果您有40個實例變量,您還有其他需要擔心的事情。你的課堂設計很可能有問題。

一般來說,超過10-11的字段被認爲太多了。

除此之外,你可能還想問問自己,如果這個類實際上需要getter和setter?它可以是不可變的嗎?

0

您可以利用諸如Enums(而不是每個套裝的bool),使用single responsibility(單獨的時間和卡片)構建課程,並問問自己是否真的需要在外部公開該變量你的班級。

0

看看項目lombok。它允許你在許多其他事情中「自動化」使用註釋創建setter/getter。