$ javac InitInt.java
InitInt.java:7: variable right might not have been initialized
InitInt(){}
^
1 error
$ cat InitInt.java
import java.util.*;
import java.io.*;
public class InitInt {
private final int right;
// Design Problem?
// I feel the initialization problem is just due to bad style.
InitInt(){}
InitInt{
// Still the error, "may not be initialized"
// How to initialise it?
if(snippetBuilder.length()>(charwisePos+25)){
right=charwisePos+25;
}else{
right=snippetBuilder.length()-1;
}
}
public static void main(String[] args) {
InitInt test = new InitInt();
System.out.println(test.getRight());
}
public int getRight(){return right;}
}
Solutions partielles et suggestionsJava: problème de conception avec la valeur finale et constructeur vide
- utilisation « ce » pour accéder aux méthodes de la classe, au lieu de créer constructeur vide
- dernier changement à non-final
- avec la valeur de champ finale: initialiser toutes les valeurs finales dans chaque constructeur
- supprimer le constructeur vide, garder votre code simple e et clean
Vous décrivez jamais le problème. Pourriez-vous le décrire ** avec des mots **? Parce que le code peut être interprété de plusieurs façons et il se peut que votre question ne soit pas évidente. –
Sauer: Je ne sais pas. La conception signifie l'artisanat, la réduction, la rupture de gros problèmes pour les petits. Je ne peux que sentir des solutions plus simples, des mouvements plus intelligents tels que statique, final et cela.Il n'y a probablement pas de solution miracle à ce problème, une tâche d'ingénierie. – hhh