【Java】问题求解。

//有一个Datas类如下

class Datas
{
    private double height;
    private double width;
    private double length;
    private double weight;
    
    ....
    
    public Datas compareHeight(Datas data)
    {
        if(this.height>data.height)
        {
            return this;
        }else{
            return data;
        }
    }
    
    public Datas compareWidth(Datas data)
    {
        if(this.Width>data.Width)
        {
            return this;
        }else{
            return data;
        }
    }
    
    public Datas compareLength(Datas data)
    {
        if(this.length>data.length)
        {
            return this;
        }else{
            return data;
        }
    }
    
    public Datas compareWeight(Datas data)
    {
        if(this.weight>data.weight)
        {
            return this;
        }else{
            return data;
        }
    }
    .....
}

可以看到这个类中有好几个类似的compare方法,他们的唯一不同就是比较的属性不同而已,导致代码重复,有没有办法把这几个方法整合成一个方法(通过多添加一个参数 String cmp_type(类似的)来确定比较的属性)。类似的函数可能如下:

    public Datas compare(Datas data,String cmp_type)
    {
        ...
    }

这样一来,上面的函数就可以修改成下面的样子,从而简化代码:

    public Datas compareHeight(Datas data)
    {
        return compare(data,"height");
    }
    ...


Dispatch
浏览 1574回答 1
1回答

没有马甲线的安琪拉

考虑一下,应用反射获取对象属性然后比较
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java