gpt4 book ai didi

java - IF 条件下无法识别 instanceOf 的继承问题

转载 作者:行者123 更新时间:2023-11-30 04:05:14 24 4
gpt4 key购买 nike

我有以下继承层次结构:Staff (Abstract)、HomeWorker (Abstract)、Typist。 Typist 继承自这两个抽象类。

我正在实现一个名为 Manager 的界面(用于学术作业)。我在其中实现 Manager 的类称为 Branch。我需要在 Branch 中实现的方法之一是 setEmail,如下所示。

问题是只有打字员有电子邮件地址,其他员工(翻译员和文员)没有。所有员工都存储在 TreeMap 中。在尝试调用 setEmail 方法之前,我试图检查 id 参数指定的工作人员是否是打字员的实例(因为此方法仅存在于打字员中)。

但是,使用 BlueJ,只要我在 IF 条件中键入 instanceOf,范围突出显示就会告诉我它超出范围,并且在 StaffMember 引用之后需要“)”。

有什么想法吗?

/** Sets email for a typist

* @param id represents the staff id
* @param email is the email address
*/
public void setEmail(String id, String email)
{
//Should be done in the typist class. This increases coupling though.
//Need to see if there is a way that I can do this using the staff class instead
Staff staffMember = staff.get (id);
//TO DO: Need to put an IF statement in that confirms the staff member is a typist, otherwise I could end up
//trying to set an email against a staff type which doesn't store email addresses
if (staffMember instanceOf Typist)
{
staffMember.setEmail(email);
}

}

最佳答案

尝试使用关键字

实例

而不是

instanceOf

因为最后一个不是 Java 中的关键字。

关于java - IF 条件下无法识别 instanceOf 的继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936340/

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