2 回答

TA貢獻1843條經驗 獲得超7個贊
經過一些研究,我最終得到了Brian Goetz 寫的《Java 數據類和密封類型》 。
這是JEP,記錄(預覽),鏈接到上面的內容。
摘要 - 這只是一個想法/JEP。因此,我們無法判斷它何時會實施(或者是否會實施)

TA貢獻1875條經驗 獲得超5個贊
爪哇記錄
正在預覽的記錄功能提供“聲明類,這些類是淺層不可變數據的透明持有者”?。換句話說,一個名義元組,一個特定的有序元素序列。
記錄是一種特殊的類。在定義記錄類別時,您需要犧牲一些靈活性來換取簡潔性。這是一個完整的記錄類定義示例:
record?Task(?String?title?,?String?notes?,?LocalDate?due?)?{}
或者:
record?Dog(?Breed?breed?,?Color?color?,?String?name?)?{}
編譯器隱式負責提供構造函數、成員字段、訪問器方法、toString
、hashCode
和equals
。如果需要,您可以選擇覆蓋這些,例如定義一個構造函數來驗證輸入。

TA貢獻1802條經驗 獲得超5個贊
record Range(int lo, int hi)
將替換
package javax0.geci.tests.record;
import javax0.geci.annotations.Geci;
@Geci("record")
public final class Range {
? ? final? int? lo;
? ? final? int? hi;
? ? //<editor-fold id="record">
? ? public Range(final int lo, final int hi) {
? ? ? ? this.lo = lo;
? ? ? ? this.hi = hi;
? ? }
? ? public int getLo() {
? ? ? ? return lo;
? ? }
? ? public int getHi() {
? ? ? ? return hi;
? ? }
? ? @Override
? ? public int hashCode() {
? ? ? ? return java.util.Objects.hash(lo, hi);
? ? }
? ? @Override
? ? public boolean equals(Object o) {
? ? ? ? if (this == o) return true;
? ? ? ? if (o == null || getClass() != o.getClass()) return false;
? ? ? ? Range that = (Range) o;
? ? ? ? return java.util.Objects.equals(that.lo, lo) && java.util.Objects.equals(that.hi, hi);
? ? }
? ? //</editor-fold>
}
添加回答
舉報