我是Java的新手,刚刚开始上课,所以仍然掌握一切是如何运作的,所以请在我尝试理解所有这些新材料时请耐心等待。
我的任务要求银行帐户能够从支票和储蓄帐户转帐。交易存储在arraylist中并为用户设置以指定何时转移资金。用于检查和保存的银行帐户类工作正常但我创建的transferervice类在我正在使用的ide netbeans中没有正确编译。
我的教师重写了我的一些代码以帮助但仍然无法编译,提示似乎没有修复错误。我得到的Transaction是抽象的,无法实例化。不太清楚我能做些什么来解决这个错误,所以任何帮助都会非常感激。
import java.util.ArrayList;
import java.util.Date;
import javax.transaction.Transaction;
public class TransferService {
private Date currentDate;
private ArrayList<Transaction> completedTransactions;
private ArrayList<Transaction> pendingTransactions;
public void TransferService(){
this.currentDate = new Date();
this.completedTransactions = new ArrayList<Transaction>();
this.pendingTransactions = new ArrayList<Transaction>();
}
public TransferService(BankAccount to, BankAccount from, double amount, Date when) throws InsufficientFundsException(){
if (currentDate.after(when)){
try(
from.withdrawal(amount);
to.deposit(amount);
completedTransactions.add(new Transaction(to, from, this.currentDate, Transaction.TransactionStatus.COMPLETE));
} catch (InsufficientFundsException ex){
throw ex;
}
} else {
pendingTransactions.add(new Transaction(to, from, null, Transaction.TransactionStatus.PENDING));
}
}
private static class InsufficientFundsException extends Exception {
public InsufficientFundsException() {
System.out.println("Insufficient funds for transaction");
}
}
答案 0 :(得分:4)
构造函数没有返回类型。所以不是
// this is a "pseudo"-constructor
public void TransferService(){
而是
// this is the real deal
public TransferService(){
关于,
好吧,是吗? Transaction类是抽象类还是接口?只有拥有代码的人知道答案。如果这是真的,那么您需要在代码中使用Transaction的具体实现。交易是抽象的,无法实例化