java - 继承类中的 Java 覆盖
问题描述
我面临的问题是,每当有人想要 .switchOff() 一个 SmartDevice 时,如果它是一个 SmartFridge 对象,它应该覆盖 SmartDevice 类中的 switchOff() 方法。
问题是 java 给了我以下错误: The operator != is undefined for the argument type(s) double, null
我不知道如何解决这个问题。
@Override
public void switchOff() {
if(this.getCurrentTemperature()!= null) {
this.setSwitchedOn(true);
//if the object is SmartFridge leave switchedOn value to true
}
}
继承的类:
package SmartHomeApp;
public class SmartFridge extends SmartDevice{
private double currentTemperature;
public SmartFridge(String name, double location, boolean switchedOn, double currentTemperature)
{
super(name, location, switchedOn);
setLocation(location);
setName(name);
setSwitchedOn(true);
setCurrentTemperature(currentTemperature);
}
public double getCurrentTemperature(){ return currentTemperature;}
public void setCurrentTemperature(double value){ currentTemperature = value;}
智能设备类:
public class SmartDevice {
private String name;
private double location;
private boolean switchedOn;
public SmartDevice(String name, double location, boolean switchedOn) {
setName(name);
setLocation(location);
setSwitchedOn(switchedOn);
}
//YOU CANT ACCESS the 'private classes' so you need to GET them
public void setName(String value) {name = value;}
public void setLocation(double value) {location = value;}
public void setSwitchedOn(boolean value) {switchedOn = value;}
public String getName() {return name;}
public double getLocation() {return location;}
public boolean getSwitchedOn() {return switchedOn;}
public void switchOn() {this.switchedOn=true;}
public void switchOff() {this.switchedOn=false;}
解决方案
您针对“null”检查的类型不是对象。这种类型是原始类型,Java 为它们设置了默认值。
您应该查看这篇文章以获取更多信息:https ://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
推荐阅读
- php - 帖子编辑器中未显示 Wordpress 元字段
- javascript - 如何将类方法设置为事件处理程序?
- android - 保存单选按钮android的状态
- angular - 如何在规范文件中创建构造函数的二维数组(带有 2 个参数)
- prolog - Prolog:为谓词中的变量赋值
- javascript - 我找不到我的不和谐机器人中的错误
- javascript - 为什么在php中使用cropper js上传图像时需要不工作
- vue.js - 同源策略不允许读取远程资源(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)
- authentication - 无法对 Azure AD 中的自定义 API 进行身份验证(JWT 令牌问题)
- java - Comparator.comparing() 函数使用 lambda 和方法引用返回不同的结果