Java 为什么赢了';我的公共无效构造函数{}是否编译?
我有一项任务,要求银行账户能够从支票和储蓄账户转账。交易记录存储在ArrayList中,并设置为用户指定何时转账。用于支票和储蓄的银行帐户类工作正常,但我创建的TransferService类在NetBeans中编译不正确 这些提示似乎无法修复错误。我得到一个错误: 事务是抽象的,无法实例化 我如何解决这个问题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
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中实例化或声明事务之前,是否需要为事务设置单独的类?