首頁  >  文章  >  Java  >  是一個Java

是一個Java

Linda Hamilton
Linda Hamilton原創
2024-10-24 06:29:30380瀏覽

var en Java

var 是 JDK 10 中引入的一個構造,它用於創建未指定資料類型的變量,而是由編譯器來推斷變數 data 的類型。這就是所謂的型別推論

var 不是Java 的關鍵字關鍵字,而是該語言的保留名稱,因為它是稍後引入的並且有可能被用作某些變數、類別、方法等的名稱。在引入之前的程式碼中。

類型推斷是一個過程,在這個過程中,編譯器可以根據分配給變數的值來確定變數的資料類型,而不是用其資料類型來聲明變量,這可以透過創建列表並省略菱形運算子中的資料類型來看到,如下所示:

// Omite el tipo de dato dentro del operador diamante
List<Integer> list = new ArrayList<>();

// Usa el tipo de dato dentro del operador diamante
List<Integer> list = new ArrayList<Integer>();

在Java中如何使用var?

要使用 var 宣告變量,請執行以下操作:

var nombreDeLaVariable = valor;
var n = "John";

在這種情況下,編譯器推斷變數 n 是 String 類型,因為它被分配了 String 類型的值,並且省略了聲明資料類型的操作,即不必執行以下操作:

String n = "John";

如果變數的值改為 10,編譯器現在推斷變數 n 的型別為 int:

var n = 10;

類似地,如果變數的值改為 10.0,編譯器現在會推斷變數 n 的型別為 double:

var n = 10.0;

即使變數的值變更為 Random 實例,編譯器現在也會推斷變數 n 的類型為 Random:

// Omite el tipo de dato dentro del operador diamante
List<Integer> list = new ArrayList<>();

// Usa el tipo de dato dentro del operador diamante
List<Integer> list = new ArrayList<Integer>();

var 的限制

  • 在類別中聲明屬性時,不能使用 var 來聲明它們,因為編譯器無法推斷屬性的資料類型,因此必須明確聲明資料類型。
var nombreDeLaVariable = valor;
var n = "John";
  • var 不能用於宣告方法或函數的參數,因為編譯器無法推斷參數的資料類型,因此必須明確宣告資料類型。
String n = "John";
  • 其他限制之一是,在宣告值為 null 的變數時不能使用 var,因為至少在 Java 中,null 不是有效的資料類型,且類型推論在這種情況下不起作用。
var n = 10;
  • 我們也不能只使用var來宣告變數而不初始化它,需要在宣告變數時給變數賦值。
var n = 10.0;
  • 當在一行中宣告多個相同類型的變數(複合宣告)時,不能使用 var,否則必須使用具有明確資料類型的變數。
var n = new Random();
  • var 不能用於宣告 lambda、方法引用或類似內容,例如:
public class Person {
    private var name; // Error
}

在其餘情況下,var 可以按正常方式使用,因為它必須在程式碼中本地使用,而不是在類別的屬性、方法的參數等層級使用。例如:

public class Person {
    private String name;
}
public void sayHello(var name) { // Error
    System.out.println("Hello " + name);
}

需要考慮的是,在某些情況下使用var 會降低程式碼的可讀性,因為Java 是一種為變數分配預先已知的資料類型的語言,並且在使用var 時可能會遺失該資訊,因此var可以用於可以清楚推斷資料類型並且不遺失程式碼可讀性的情況。

var y = null; // Error

重要的是不要將類型推論與 Java 作為強類型語言混淆。使用 var 並不使變數成為動態類型變量,而是編譯器在編譯時推斷變數的資料類型。所以你不能宣告一個int型別的變數,然後給它一個String類型的值。

var x; // Error
x = 10;

以上是是一個Java的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn