我有两个可扩展列表的构造函数,如下所示,我也有一个接口如下所示。现在我想使用相同的expandlist适配器 两个不同的活动,这就是我创建两个构造函数的原因。但问题是初始化构造函数时,正如您在第一个构造函数中看到的那样 将接口对象初始化为构造函数中的第二个参数,我收到“冗余强制转换”,而在第二个构造函数中,必须初始化 接口对象为应该实现该接口的活动的第二个参数
请解释为什么第一个构造函数中的构图是第二个构造函数中的元素,而它是第二个元素中的元素?
更新
CategoryViewController *popoverTableViewController = [[CategoryViewController alloc] init];
popoverTableViewController.delegate = self;
UITableViewCell *cell = [categoryTableView cellForRowAtIndexPath:indexPath];
NSString *cellText = cell.textLabel.text;
[self.delegate didSelectRow:cellText];
[[self navigationController] popViewControllerAnimated:YES];
*代码:
both activities extends AppCompatActivity
}
答案 0 :(得分:2)
似乎ActMain
已经实现IDeviceDetailsPasser
,这就是多余投射的原因。
答案 1 :(得分:1)
我认为在这种情况下,您的actMain
实施IDeviceDetailsPasser
,因此投放是多余的,而您的actConnect
未实施IDeviceDetailsPasser
,因此必须投射。
修改强>:
要处理ClassCastException,请使用try/catch
try {
mDevDetailsObserver = (IDeviceDetailsPasser) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement IDeviceDetailsPasser");
}