Java构造函数没有正确编译

时间:2014-11-02 00:41:29

标签: java constructor compiler-errors banking

我是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");
        }
    }

1 个答案:

答案 0 :(得分:4)

构造函数没有返回类型。所以不是

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

而是

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

关于,

  

交易是抽象的,无法实例化

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