gpt4 book ai didi

java - 为什么类型转换对象是多余的

转载 作者:行者123 更新时间:2023-11-29 04:58:02 26 4
gpt4 key购买 nike

我有两个用于扩展列表的构造函数,如下所示,我还有一个如下所示的界面。现在我想使用相同的扩展列表适配器两个不同的 Activity ,这就是我创建两个构造函数的原因。但问题是初始化构造函数时,正如你在第一个构造函数中看到的那样,当我将接口(interface)对象初始化为构造函数中的第二个参数,我收到“冗余转换”,而在第二个构造函数中必须初始化第二个参数的接口(interface)对象,应该实现该接口(interface)的 Activity

请解释为什么第一个构造函数中的转换是多余的,而第二个构造函数中的强制转换是多余的?

更新

both activities extends AppCompatActivity

*代码:

public MyExpandableList(Context ctx, ActMain actMain, ArrayList<Group> groupList) {
this.mCtx = ctx;
this.mGroupList = groupList;
this.mBTUtils = new BTUtils(ctx);
this.mDevDetailsObserver = (IDeviceDetailsPasser) actMain;//redundant casting, which is not necessary
}

public MyExpandableList(Context ctx, ActConnect actConnect, ArrayList<Group> groupList) {
this.mCtx = ctx;
this.mGroupList = groupList;
this.mBTUtils = new BTUtils(ctx);
this.mDevDetailsObserver = (IDeviceDetailsPasser) actConnect;//manadory casting

}

//interface
public interface IDeviceDetailsPasser {
public void onDevicedetailsChosen(Header header, Details details, int groupPos);

最佳答案

似乎 ActMain 已经实现了 IDeviceDetailsPasser,这就是冗余转换的原因。

关于java - 为什么类型转换对象是多余的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33052471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com