【无标题】double 和 Double在使用时的区别

在实现求取某个double数组最大值时,发现使用double作为方法返回值类型时不能返回“null"。

// 需求:编写类A01,定义方法max,实现求某个double数组的最大值,并返回
public class project{    
public static void main(String [] args){
    A01 a01 = new A01(); 
    double[] arr = {1,2};
    Double res = a01.max(arr);
    if(res != null){
        System.out.println("arr的最大值=" + res);
    }else{
        System.out.println("arr的输入有误");
    }
  }
}
class A01{
    
        public double max(double[] arr){  

            if(arr != null && arr.length >0){

          double max=arr[0];
          for(int i =1; i < arr.length ;i++){

          if (max < arr[i] ){

              max = arr[i];
           }      
       }
          return max;
          }

          else {
              return null;
        }
          
    }
}

以下是编译结果: 

project.java:32: 错误: 不兼容的类型: <空值>无法转换为double
                        return null;

究其原因,double是基本数据类型,而基本数据类型不能赋null值; Double是包装类型,包装类型与基本数据类型的区别之一是:初始值不同,比如:int的初始值为0、boolean的初始值为false,而包装类型的初始值为null。

将double改为Double后程序成功编译运行  

// 需求:编写类A01,定义方法max,实现求某个double数组的最大值,并返回
public class project{    
public static void main(String [] args){
    A01 a01 = new A01(); 
    double[] arr = {1,2};
    Double res = a01.max(arr);
    if(res != null){
        System.out.println("arr的最大值=" + res);
    }else{
        System.out.println("arr的输入有误");
    }
  }
}
class A01{
    
        public double max(double[] arr){  

            if(arr != null && arr.length >0){

          double max=arr[0];
          for(int i =1; i < arr.length ;i++){

          if (max < arr[i] ){

              max = arr[i];
           }      
       }
          return max;
          }

             else {
              return null;
        }
          
    }
}

 编译结果:

arr的最大值=2.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值