【发布时间】:2017-08-28 15:40:15
【问题描述】:
我想将 CompteBancaire 类替换为功能接口,谁能告诉我该怎么做?
下面是sn-p的代码,我想在verserArgent和retirerArgent方法中使用CompletableFuture进行异步任务。
package myclasses;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Future;
public class CompteBancaire {
private int numC;
private int nbTraces;
public static int nbComptes;
public double solde;
private String nom;
private String prenom;
private List<Double> tracesComptes = new ArrayList<>();
/**
* @Constructeur non pramétré
*/
public CompteBancaire() {
this.tracesComptes = new ArrayList<>();
nbComptes++;
}
/**
*
* @param numC
* @param solde
* @param nom
* @param prenom
*
* @Constructeur pramétré
*/
public CompteBancaire(int numC, double solde, String nom, String prenom) {
this.numC = numC;
this.solde = solde;
this.nom = nom;
this.prenom = prenom;
this.tracesComptes = new ArrayList<>();
nbComptes++;
}
/**
*
* @return @getters && setters
*
*
*/
public int getNumC() {
return numC;
}
public void setNumC(int numC) {
this.numC = numC;
}
public int getNbTraces() {
return nbTraces;
}
public void setNbTraces(int nbTraces) {
this.nbTraces = nbTraces;
}
public double getSolde() {
return solde;
}
public void setSolde(double solde) {
this.solde = solde;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
/**
*
* @param tracesCompte
*/
public void setTracesCompte(List<Double> tracesCompte) {
this.tracesComptes = tracesCompte;
}
/**
*
* @param montant
* @return
* @throws tp3.ErreurNegatif
* @Methode qui depose de l'argent au compte (versement)
*
*/
public void verserArgent(double montant) throws ErreurNegatif, Throwable {
if (montant > 0) {
solde += montant;
tracesComptes.add(nbTraces, solde);
nbTraces++;
} else {
throw new ErreurNegatif();
}
}
/**
*
* @Methode qui retire de l'argent du compte
*
*/
void retirerArgent(double montant) throws ErreurNegatif {
if (solde - montant > 0) {
solde -= montant;
tracesComptes.add(nbTraces, solde);
nbTraces++;
} else {
throw new ErreurNegatif();
}
}
/**
*
* @return @Methode qui affiche les informations relatives au compte
*
*
*/
public String description() {
return "Titulaire du compte:" + nom + " " + prenom + ", Numéro compte:" + numC + ", Solde:" + solde;
}
}
【问题讨论】:
标签: java asynchronous interface functional-programming completable-future