将null值作为参数传递给java

时间:2013-05-13 04:57:07

标签: java android

我有一种方法可以将数据插入到sq-lite db

 public long InsertDetails(int Id,String BatchName,double Weight,
        double Yield)
{
    ContentValues InsertContentValues = AssesmentInsertValues(Id,BatchName,Weight,Yield);
    return this.data.insert("tb_LabAssessment", null, InsertContentValues);
}

来自我的主类我将值作为参数传递给上面的函数,在某些情况下我想将权重和yield作为空值传递。

String batchname;
double weight;
double Yield;
dbAdapter.InsertAssesmentDetails(objClsProduct.getId(),batchname,weight,Yield)

我如何在这里将权重和收益的值传递为空。

4 个答案:

答案 0 :(得分:6)

您无法将原语传递为null。有两种方法可以做到这一点 - 首先是使函数采用Double-双版的类版本。另一种是传入一些未使用的值,例如-1,表示null。这需要有合理的默认值。

答案 1 :(得分:2)

将方法更改为:

public long InsertDetails(int Id, String BatchName, Double Weight, Double Yield)

其中Double可以容纳null,因为它是引用类型。

答案 2 :(得分:1)

double等基本类型不能为空。您可以发送Double对象。在这种情况下,方法签名使用Double而不是double。然后调用方法如下

dbAdapter.InsertAssesmentDetails(objClsProduct.getId(),batchname,null,null)

答案 3 :(得分:1)

使用您需要的参数引入第二个方法。允许传递NULL需要以某种方式记录。另一种方法使这个过时了,你就完成了。