gpt4 book ai didi

java - 将原始双值数组转换为对象引用

转载 作者:行者123 更新时间:2023-12-02 08:22:21 28 4
gpt4 key购买 nike

我正在尝试将原始双值数组转换为对象。结果我收到“类型不匹配错误”

private double[]purchases;

private CreditCard[]purchases;

然后当我尝试向数组添加值时

public void purchase(double amount)throws Exception
{
if (numPurchases<purchases.length)
if (amount >0 )
if(amount+balance<=creditLimit)
if( GregorianCalendar.getInstance().getTimeInMillis()<=expDate.getTimeInMillis())
{
balance+=amount;

purchases[numPurchases]= amount;
numPurchases++;

}
else
{
throw new Exception("card expired");
}
else{
throw new Exception("insufficient credit");
}
else{
throw new Exception("invalid amount");

}
else{
throw new Exception("exceeded number of allowed purchases");
}


}

错误消息显示金额类型不匹配“无法从 double 转换为信用卡”如何更正代码以允许我将购买金额添加到数组中?

最佳答案

这里的要点是您已经定义了 purchases,因此它必须仅包含 CreditCard 实例:

private CreditCard[] purchases;

您在此处指定的类型控制您稍后可以在其中放置的内容。然后,您尝试将 double 放入数组中:

purchases[numPurchases] = amount;

但是您只是告诉编译器 purchases 只允许包含 CreditCard!

您需要首先将 double 包装在 CreditCard 实例中。

假设您有以下类(class):

public class CreditCard {
private double amount;
public CreditCard(double amount) {
this.amount = amount;
}
}

现在你可以这样做:

purchases[numPurchases] = new CreditCard(amount);

...因为您放入数组中的内容具有正确的类型

顺便说一句,请考虑将您的类重命名为 CreditCardPurchase(如果这才是它真正代表的含义)。你的类的名称应该说明它是什么。。如果它进入 purchases 数组,那么它可能是一次购买,而不是信用卡本身。

关于java - 将原始双值数组转换为对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5253872/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com