Java -- 如何引用?

首先我封裝好了一個長列表查詢,在SettingsMainPage中

/**
 * 適用於長列表查詢,根據提供對應的text屬性
 */
public void settingsListItem(String item) throws UiObjectNotFoundException {
    if (mDevice.hasObject(By.textContains(item))) {
        find(By.textContains(item)).clickAndWait(Until.newWindow(), 3000);
    } else {
        UiScrollable findItem = new UiScrollable(new UiSelector().className("android.support.v7.widget.RecyclerView"));
        findItem.scrollTextIntoView(item);
        find(By.textContains(item)).clickAndWait(Until.newWindow(), 3000);
    }
}

在SettingsMainPage中我可以直接用,但是別的地方我也想用怎麼辦呢? 前面我還很蠢的去複製了下代碼到別的地方。這麼做這麼麻煩,肯定有捷徑,搜一下,果然,Java中有引用~

在LocationPage中我要引用

//開頭加上這句話,後面就可以直接引用了
SettingsMainPage settingsMainPage = new SettingsMainPage(mDevice);

/**
 * 從 Security&location頁面進入choose screen lock頁面,選擇None鎖屏方式
 */
public void selectScreenLockNone() throws UiObjectNotFoundException {
    settingsMainPage.settingsListItem(mScreenLock);//引用
    enterSettingLockScreenScene();
    mDevice.wait(Until.hasObject(ChooseScreenLockSelector), LAUNCH_CALL_PAGE);
    find(noneScreenLockSelector).click();
    if (mDevice.wait(Until.hasObject(removeDeviceProtectionSelector),LAUNCH_CALL_PAGE)) {
        find(yesRemoveButtonSelector).clickAndWait(Until.newWindow(), LAUNCH_CALL_PAGE);
    }
    mDevice.wait(Until.hasObject(screenLockButtonSelector), LAUNCH_CALL_PAGE);
}

都是基礎啊,無奈剛學Java,還不是很6,慢慢來~

 

順便搜下Java的引用學習下:

 強引用是使用最普遍的引用。如果一個對象具有強引用,那垃圾回收器絕不會回收它。如下:

Object o=new Object();   //  強引用

       當內存空間不足,Java虛擬機寧願拋出OutOfMemoryError錯誤,使程序異常終止,也不會靠隨意回收具有強引用的對象來解決內存不足的問題。如果不使用時,要通過如下方式來弱化引用,如下:

o=null;     // 幫助垃圾收集器回收此對象

       顯式地設置o爲null,或超出對象的生命週期範圍,則gc認爲該對象不存在引用,這時就可以回收這個對象。具體什麼時候收集這要取決於gc的算法。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章