为啥我的 public void Constructor 不能编译?
Posted
技术标签:
【中文标题】为啥我的 public void Constructor 不能编译?【英文标题】:Why won't my public void Constructor compile?为什么我的 public void Constructor 不能编译? 【发布时间】:2014-12-28 23:07:36 【问题描述】:我有一项任务需要银行账户才能从支票和储蓄账户转移资金。交易存储在 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");
【问题讨论】:
【参考方案1】:构造函数没有返回类型。所以不是
// this is a "pseudo"-constructor
public void TransferService()
而是
// this is the real deal
public TransferService()
关于,
事务是抽象的,不能实例化
嗯,是吗? Transaction 类是抽象类还是接口?只有拥有代码的你才知道答案。如果这是真的,那么您需要在代码中使用 Transaction 的具体实现。
【讨论】:
好的,我想我明白你的意思了。它不应该是一个抽象类,因为我认为我没有一个设置。我的猜测是我是否需要为 Transaction 设置一个单独的类,然后才能实例化或声明它以在 TransferService 方法和 arraylist 中使用?以上是关于为啥我的 public void Constructor 不能编译?的主要内容,如果未能解决你的问题,请参考以下文章
.select_on_container_copy_construction 左侧的 C++ boost::container::vector 必须具有类/结构/联合
Dev C++为啥不支持以void main()为主函数的空函数C程序?老师给出的一直都是以Tu