如何在Java 14中使用Records類別來建立可變和不可變的資料對象
引言:
在Java 14之前,我們通常使用類別來建立資料對象,在其中定義字段,產生getter和setter方法。這樣的程式碼是冗長而繁瑣的,需要大量的樣板程式碼。 Java 14引進了Records類,它提供了一種更簡潔的方式來建立資料物件。 Records類別可以自動產生欄位、建構函式、getter和equals、hashCode等方法。本文將介紹如何在Java 14中使用Records類別來建立可變和不可變的資料對象,並給出對應的程式碼範例。
可變的資料物件:
在Java中,我們可以使用關鍵字"record"來建立一個Record類別。這個類別會自動產生欄位和許多方法。我們可以使用var關鍵字來定義並初始化一個可變的資料物件。
下面是一個範例,展示如何建立一個可變的Person物件:
record Person(String name, int age) {}
這個Person類別有兩個欄位:name和age。我們可以使用以下程式碼來使用這個類別:
var person = new Person("John", 30); person.setName("Mike"); person.setAge(35);
在這個範例中,我們建立了一個名為person的可變對象,並設定了它的name和age欄位。我們也可以使用產生的setName和setAge方法來修改這個物件的欄位值。
不可變的資料對象:
要建立一個不可變的資料對象,我們只需要將Record類別的欄位標記為final。這樣,這些欄位就不能被修改。我們可以使用以下程式碼範例:
record Person(String name, int age) { public Person { if(age < 0) { throw new IllegalArgumentException("Age cannot be negative"); } } }
在這個範例中,我們為Person類別新增了一個建構子。我們使用建構函式來驗證age欄位的值。如果age小於0,將拋出一個異常。
這個不可變的Person物件可以使用以下程式碼來建立和使用:
var person = new Person("John", 30); System.out.println(person.name()); System.out.println(person.age());
在這個範例中,我們建立了一個名為person的不可變對象,並透過呼叫name和age方法來取得欄位的值。由於age欄位是final的,所以它不能被修改。
總結:
在本文中,我們介紹如何在Java 14中使用Records類別來建立可變和不可變的資料物件。我們展示瞭如何建立可變和不可變的Person對象,並給出相應的程式碼範例。 Records類別提供了一種簡潔的方式來建立資料對象,減少了冗長且重複的程式碼。它是Java 14中一個非常有用的新特性,可以提高開發效率和程式碼品質。大家可以嘗試在自己的專案中使用Records類別來建立資料對象,體驗它的便利之處。
以上是如何在Java 14中使用Records類別來建立可變和不可變的資料對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!