日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

提高你的Java代码质量吧:少用静态导入

發布時間:2025/3/20 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 提高你的Java代码质量吧:少用静态导入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、分析?

從Java 5開始引入靜態導入語法(import static),其目的是為了減少字符輸入量,提高代碼的可閱讀性,以便更好地理解程序。?

但是,濫用靜態導入會使程序更難閱讀,更難維護。靜態導入后,代碼中就不用再寫類名了,但是我們知道類是“一類事物的描述”,缺少了類名的修飾,靜態屬性和靜態方法的表象意義就會被無限方法,這會讓閱讀者很難弄清楚其屬性或方法代表何以,甚至是哪一個類的屬性(方法)都要思考一番(當然,IDE友好提示功能另說),特別是在一個類中有多個靜態導入語句時,若還是用*(星號)通配符,把一個類的所有靜態元素都導入進來,那簡直就是噩夢。

二、場景?

如此段代碼:?

import static java.lang.Math.PI; public class MathUtils{ //計算圓面積 public static double calCircleArea(double r){ return PI * r * r; } //計算球面積 public static double calBallArea(double r){ return 4 * PI * r * r; } }

靜態導入把Math類中的PI常量引入到本類中,這回是程序更簡單,更容易閱讀,只要看到PI就知道是圓周率,不用每次都要把類名寫出來。?

又如此段代碼:?

import static org.jnuit.Assert.*; public class DaoTest{ @Test public void testInsert(){ //斷言 assertEquals("foo",foo); assertFalse(Boolean.FALSE); } }

我們從程序中很容易判斷出assertEquals方法時用來判斷兩個值是否相等的,assertFalse方法則是斷言表達式為假的。這就是具有明確、清晰表象意義的工具類,使用靜態導入,減少代碼量,提高代碼可讀性的好處。?

但是,如此段代碼:?

import static java.lang.Double.*; import static java.lang.Math.*; import static java.lang.Integer.*; import static java.text.NumberFormat.*; public class Client{ //輸入半徑和精度要求,計算面積 public static void main(String[] args){ double s = PI * parseDouble(args[0]); NumberFormat nf = getInstance(); nf.setMaxinumFractionDigits(parseInt(args[1])); formatMessage(nf.format(s)); } //格式化消息輸出 public static void formatMessage(String s){ System.out.println("圓面積是:" + s); } }

就這么一段程序:常量PI,這個知道是圓周率;parseDouble方法可能是Double類的一個轉換方法;getInstance方法時那個類的?Client本地類?NumberFormate類?這個方法和formatMessage方法沒有任何區別—這代碼太難閱讀了,非機器不可閱讀。?

三、建議?

對于靜態導入,一定要遵循兩個規則:?

1.不要使用*(星號)通配符,除非是導入靜態常量(只包含常量的類或接口)。?

2.方法名是具有明確、清晰表象意義的工具類。

總結

以上是生活随笔為你收集整理的提高你的Java代码质量吧:少用静态导入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。