我端起我的Java代碼來斯卡拉,並有一個構造函數確實頗有些東西:斯卡拉構造局部變量再次
- 開放Hibernate的Session加載數據
- 做加載(即現在的會話保持開放!我需要延遲加載進一步上)
- 執行上加載的數據的一些操作,放在容器
- 領帶容器與消費者
- ..blah等等
- close session
該構造函數產生相當多的(〜20)對象成員,即final(val in scala)。他們的創作不是獨立的,也注意到了會話。顯然,我不希望會話和其他臨時的東西成爲構建實例成員。我如何在Scala中做到這一點?
類似的問題已經被問過:在前面的主題給出
答案建議要麼返回〜20場的從初始化方法的元組,或創建一個私有構造函數,它將〜20個值作爲伴隨對象應用方法的參數。要麼我看起來很醜陋。
到目前爲止,最明智的方法似乎是將這些字段聲明爲變量,而不是vals,並將它們重新分配給一些初始化方法,這也有點異味。
我知道它的權利,這是java代碼等價:'接口示例{0} {0} {0} {0} int a1(); int a2(); (int seed){ final int x1 = seed + 1; final int x2 = x1 * 2; 返回新實例(){ INT A1(){回報X1;} INT A2(){回報X2;} } } }'PS愚蠢的評論格式化 – enlait
我來到斯卡拉不需要在Java以往的經驗,但你的代碼似乎很粗略等效 – ayvango
我認爲這實際上是相當簡潔的解決方案,非常易讀,易於理解。 – enlait