On nous a donné cette spécification pour la classe PercolationStats:référence statique à la méthode non statique
public class PercolationStats {
public PercolationStats(int N, int T) // perform T independent computational experiments on an N-by-N grid
public double mean() // sample mean of percolation threshold
public double stddev() // sample standard deviation of percolation threshold
public double confidenceLo() // returns lower bound of the 95% confidence interval
public double confidenceHi() // returns upper bound of the 95% confidence interval
public static void main(String[] args) // test client, described below
}
et à mettre en œuvre moyenne() et stddev(), nous avons dû utiliser une bibliothèque spéciale qui a une classe appelée StdStats:
public final class StdStats {
private StdStats() { }
/* All methods declared static. */
}
J'essayé d'écrire quelque chose comme
public mean() {
return StdStats.mean();
}
mais je reçois l'erreur suivante:
Cannot make a static reference to the non-static method mean() from the type PercolationStats
Voici ce qui la génération on peut supposer qu'il:
main() {
/* ... */
System.out.println("-- Summary --\n");
System.out.printf("mean\tstdev\t[lo\thi]\n\n");
System.out.printf("%1.3f\t%.3f\t%.3f\t%.3f", PercolationStats.mean(),
PercolationStats.stddev(), PercolationStats.confidenceLo(), PercolationStats.confidenceHi());
System.out.println("-- End --");
}
Yat-il un moyen de se débarrasser de cette erreur sans changer la spécification? Je crois que nous sommes supposés être capables de faire des objets PercolationStats. Merci pour toute aide!
pourriez-vous montrer le code qui est dans votre méthode 'main'? –
_il est supposé être capable de faire des objets PercolationStats_ Oui, faites cela et appelez la méthode sur l'un de ces objets. –
StdStats est un nom de classe. 'mean' est probablement une méthode d'instance de cette classe. Vous devez créer une instance de StdStats (peut-être via une sorte d'usine) et l'utiliser pour appeler 'mean'. Mais notez que vous devez sans doute fournir d'abord quelques données à cette instance pour qu'elle ait quelque chose pour calculer la moyenne de. –