在(预览)中,它已被提高为保护,因此提出了当前的建议来解构该类,该类可以与模式结合使用,该类别可以实现稳定,声明性和组合的数据导航和处理模式。
在提供的模式匹配中,将扩展操作员,以便它可以使用该模式并执行匹配。具体示例如下:
公共void print(object o){
if(o实例double){
double d =(double)o;
system.out.println(“ d =” + d);
}
}
使用匹配可以如下更改:
公共void print(object o){
if(o实例double d){
system.out.println(“ d =” + d);
}
}
在上面的示例中,如果o是double的实例,则o成功匹配DoubleD。此d d d d d d d odut o d d d d d d d double。减少了显示类型的转换并有效缩短代码。
因此,开发人员可以轻松编写不满意的对象。
记录点(int x,int y){}
使用类后,无需显示施工功能,访问方法和其他方法(例如Harmony)。
如果代码中使用了示例,则开发人员需要访问其访问者方法以获取数据,例如:
公共空白印刷品(对象o){
if(o实例p){
int x = p.x();
int y = p.y();
system.out.println(x + y);
}
}
在上面的代码中,模块变量p用于调用访问方法x()和y()以获取x和y的值。使用记录后,P变量将不再需要。Publicvoid printsum(object o){
如果instanceof point(int x int y){{{
system.out.println(x + y);
}
}
开发人员解构了更复杂的图形对象,例如以下情况:
枚举颜色{红色,绿色,蓝色}
记录colordpoint(点P,颜色颜色){}
记录点(int x,int y){}
记录广场(彩色点上尺,彩色点较低){}
如果开发人员需要获得左上角,则可以使用以下方式使用解构:
public void printupperleftcoloroROROIRDPOINT(Square S){
if(s instance of Square(coloredpoint(point(var x,var y),var颜色),var lowlric)){
}
}
如果未使用上述情况,则代码将非常复杂且冗长。