Java 为什么赢了';我的公共无效构造函数{}是否编译?

Java 为什么赢了';我的公共无效构造函数{}是否编译?,java,constructor,compiler-errors,banking,Java,Constructor,Compiler Errors,Banking,我有一项任务,要求银行账户能够从支票和储蓄账户转账。交易记录存储在ArrayList中,并设置为用户指定何时转账。用于支票和储蓄的银行帐户类工作正常,但我创建的TransferService类在NetBeans中编译不正确 这些提示似乎无法修复错误。我得到一个错误: 事务是抽象的,无法实例化 我如何解决这个问题 import java.util.ArrayList; import java.util.Date; import javax.transaction.Transaction; pub

我有一项任务,要求银行账户能够从支票和储蓄账户转账。交易记录存储在ArrayList中,并设置为用户指定何时转账。用于支票和储蓄的银行帐户类工作正常,但我创建的TransferService类在NetBeans中编译不正确

这些提示似乎无法修复错误。我得到一个错误:

事务是抽象的,无法实例化

我如何解决这个问题

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");
        }
    }
import java.util.ArrayList;
导入java.util.Date;
导入javax.transaction.transaction;
公共类转移服务{
私有日期当前日期;
私有ArrayList completedTransactions;
私有阵列列表待处理事务;
公共服务{
this.currentDate=新日期();
this.completedTransactions=new ArrayList();
this.pendingTransactions=new ArrayList();
}   
公共转账服务(银行账户收件人、银行账户发件人、双倍金额、日期)引发资金不足异常(){
如果(当前日期之后(何时)){
试一试(
从……取款(金额);
存款(金额);
completedTransactions.add(新事务(到,从,this.currentDate,Transaction.TransactionStatus.COMPLETE));
}捕获(资金不足,异常情况除外){
掷骰子;
}
}否则{
添加(新事务(to、from、null、Transaction.TransactionStatus.PENDING));
}
}
私有静态类不足FundsException扩展异常{
公共资金不足异常(){
System.out.println(“交易资金不足”);
}
}

构造函数没有返回类型。因此

// this is a "pseudo"-constructor
public void TransferService(){
而是

// this is the real deal
public TransferService(){

关于,

事务是抽象的,无法实例化


嗯,是吗?事务类是抽象类还是接口?只有拥有代码的人知道答案。如果这是真的,那么你需要在代码中使用事务的具体实现。

好的,我想我明白你的意思了。它不应该是抽象类,因为我想我没有设置它。我的猜测是,在TransferService方法和arraylist中实例化或声明事务之前,是否需要为事务设置单独的类?