Java -- 如何引用?

本文介绍了一种在Android自动化测试中针对长列表查询的封装方法,并演示了如何在不同页面间通过引用机制复用代码。同时,文章还解释了Java中的引用类型,特别是强引用的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我封装好了一个长列表查询,在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的算法。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值