第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

靜態(tài)導(dǎo)入方法的好用例是什么?

靜態(tài)導(dǎo)入方法的好用例是什么?

幕布斯6054654 2019-09-20 16:32:30
剛收到評論評論我靜態(tài)導(dǎo)入該方法并不是一個好主意。靜態(tài)導(dǎo)入是來自DA類的方法,該類主要使用靜態(tài)方法。因此,在業(yè)務(wù)邏輯的中間,我有一個似乎屬于當前類的da活動:import static some.package.DA.*;class BusinessObject {  void someMethod() {    ....    save(this);  }} 審稿人并不熱衷于我改變代碼而我沒有,但我確實同意他。給出非靜態(tài)導(dǎo)入的一個原因是,在定義方法的地方很混亂,它不在當前類中而不在任何超類中,所以它也有一段時間來識別它的定義(基于Web的審查系統(tǒng)沒有可點擊的IDE之類的鏈接:-)我真的不認為這很重要,靜態(tài)導(dǎo)入仍然很新,我們很快就會習(xí)慣定位它們。但另一個原因,我同意的是,一個不合格的方法調(diào)用似乎屬于當前對象,不應(yīng)該跳轉(zhuǎn)上下文。但如果確實屬于它,那么擴展超級類是有意義的。所以,當它是有意義的靜態(tài)導(dǎo)入的方法呢?你什么時候做的?您是否喜歡不合格電話的樣子?編輯:流行的觀點似乎是靜態(tài)導(dǎo)入方法,如果沒有人會把它們混淆為當前類的方法。例如,java.lang.Math和java.awt.Color中的方法。但是如果abs和getAlpha不模糊,我不明白為什么readEmployee是。在許多編程選擇中,我認為這也是個人偏好的事情。感謝您的回復(fù),我正在結(jié)束這個問題。
查看完整描述

3 回答

?
慕森卡

TA貢獻1806條經(jīng)驗 獲得超8個贊

靜態(tài)導(dǎo)入的另一個合理用途是使用JUnit 4.在JUnit方法的早期版本中,類似于assertEquals并且fail自測試類擴展以來繼承了這些方法junit.framework.TestCase。


// old way

import junit.framework.TestCase;


public class MyTestClass extends TestCase {

    public void myMethodTest() {

        assertEquals("foo", "bar");

    }

}

在JUnit 4中,測試類不再需要擴展TestCase,而是可以使用注釋。然后,您可以靜態(tài)導(dǎo)入斷言方法org.junit.Assert:


// new way

import static org.junit.Assert.assertEquals;


public class MyTestClass {

    @Test public void myMethodTest() {

        assertEquals("foo", "bar");

        // instead of

        Assert.assertEquals("foo", "bar");

    }

}

JUnit 文檔以這種方式使用它。


查看完整回答
反對 回復(fù) 2019-09-20
?
叮當貓咪

TA貢獻1776條經(jīng)驗 獲得超12個贊

有效的Java,第二版,在第19項末尾指出,如果您發(fā)現(xiàn)自己大量使用實用程序類中的常量,則可以使用靜態(tài)導(dǎo)入。我認為這個原則適用于常量和方法的靜態(tài)導(dǎo)入。


import static com.example.UtilityClassWithFrequentlyUsedMethods.myMethod;


public class MyClass {

    public void doSomething() {

        int foo= UtilityClassWithFrequentlyUsedMethods.myMethod();

        // can be written less verbosely as

        int bar = myMethod();

    }

}

這有利有弊。它使代碼更具可讀性,代價是丟失一些關(guān)于定義方法的直接信息。但是,一個好的IDE會讓你進入定義,所以這不是一個問題。


你仍然應(yīng)該謹慎使用它,并且只有當你發(fā)現(xiàn)你自己使用導(dǎo)入文件中的東西很多次。


編輯:更新為更具體的方法,因為這是這個問題所指的。無論輸入什么(常數(shù)或方法),該原則都適用。


查看完整回答
反對 回復(fù) 2019-09-20
  • 3 回答
  • 0 關(guān)注
  • 358 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號