2014-11-02 54 views
1

我是Java的新手,最近剛剛開始上課,所以仍然掌握了一切如何工作的原因,所以請在我嘗試理解所有這些新材料的時候忍受。Java構造函數沒有正確編譯

我有一項任務,需要一個銀行賬戶能夠從一個檢查和儲蓄賬戶轉移資金。交易存儲在數組列表中,並設置爲用戶指定何時轉移資金。用於檢查和儲蓄的銀行帳戶類可以正常工作,但我創建的transferservice類不能在我使用的ide 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"); 
     } 
    } 

回答

4

構造函數沒有返回類型。所以不

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

而是

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

關於,

交易是抽象的,不能被實例化

那麼,是什麼呢? Transaction類是抽象類還是接口?只有擁有密碼的人才知道這個答案。如果這是真的,那麼您需要在代碼中使用具體的Transaction實現。

+0

好吧我想我明白你的意思了。我認爲這不是一個抽象類,因爲我沒有一個設置。我的猜測是,我需要爲事務設置一個單獨的類,然後才能在TransferService方法和arraylist中實例化或聲明使用它? – MrLevel81 2014-11-03 00:34:15