Java靜態引入

在Java中,我們通常是直接通過import 包名.類名,直接載入特定類,並對其進行操作。

而Java中,除了普通的import之外還有一個,import static用於向類中引入特定的內容。

import static與import不同的是,單純的import用於引入特定的類,而import static則是引入特定類中靜態的字段和方法。

例如我們現在有一個類,如下:

package com.kifile.demo;

public class StaticClass {
	public static int i = 12;
	public int j = 5;

	public static void test() {
		System.out.println("test");
	}

	public void test2() {
		System.out.println("123");
	}
}
在StaticClass這個類中,我們有一個靜態字段,一個非靜態字段,一個靜態方法,一個非靜態方法。

然後我們有一個測試類,如下:

package com.kifile.demo;

import static com.kifile.demo.StaticClass.*;

public class Test {
	
	public static void main(String[] args){
		System.out.println(i);
		test();
//		System.out.println(j);  Error
//		test2();		Error
	}
	
}

我們現在類的前方,類似於普通的Import一樣,將StaticClass中的相關屬性進行靜態導入,請留意,我們在靜態引入時的名稱爲com.kifile.demo.StaticClass.*,而不是com.kifile.demo.StaticClass。這說明我們希望引入的是特定類內部的字段,屬性,而非特定類本身。

之後通過測試我們發現,當我們使用靜態導入類中的靜態字段和方法時一切正常,當我們使用非靜態對象時編譯時報錯。這說明,通過靜態導入,我們能夠正常調取類中的靜態對象,但是無法對非靜態對象進行調用

同普通的import類似,import static可以對你希望引入的字段或屬性進行選擇,例如在本例中,我們就可以講import static com.kifile.demo.StaticClass.*替換爲import static com.kifile.demo.StaticClass.i和import static com.kifile.demo.StaticClass.test,其效果一致,但是會屏蔽掉其他不使用的靜態對象。

發佈了28 篇原創文章 · 獲贊 7 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章