J'ai un objet qui est étudiant étudiant; qui a quelques champs comme le nom, la famille, ... Je veux faire un nom d'utilisateur pour cet étudiant et en cliquant sur le bouton un, je veux montrer le nom d'utilisateur de l'étudiant sur la console mais il montrera ces phrases sur la console (je l'ai copié et collé juste une partie de cette) ----->pourquoi il montre NullPointerException?
java.lang.NullPointerException à registration.Students.nextUserName (Students.java:149) à ui.AddStudent.submit (AddStudent.java:254) à ui.AddStudent.jButton1ActionPerformed (AddStudent.java:186) à ui.AddStudent.access 000 $ (AddStudent.java:24) à ui.AddStudent $ 1.actionPerformed (AddStudent.java:76) at javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:19 95) à javax.swing.AbstractButton $ Handler.actionPerformed (AbstractButton.java:2318) à javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387) à javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java: 242) à javax.swing.plaf.basic.BasicButtonListener.mouseReleased (BasicButtonListener.java:236) à java.awt.Component.processMouseEvent (Component.java:6038) à javax.swing.JComponent.processMouseEvent (JComponent. java: 3265) . . .
une partie de ma classe d'étudiants qui s'étend aussi humain:
public String nextUserName() {
StringBuffer user = new StringBuffer();
SystemManagement students = new SystemManagement();
String name1 = students.getName();
char char1 = name1.charAt(0);
String family1 = students.getFamily();
char char2 = family1.charAt(1);
setUserName(name1 + "." + family1);
if (user.length() != 0 && user.toString().equals(getUserName())) {
char[] allowedCharacters1 = {char1, char2, '1', '.'};
SecureRandom random = new SecureRandom();
for (int i = 0; i < user.length(); i++) {
user.append(allowedCharacters1[random.nextInt(allowedCharacters1.length)]);
}
setUserName(user.toString());
}
return getUserName();
}
public String currentUserName() {
return getUserName();
}
public static Students getInstance() {
if (instance == null) {
instance = new Students();
}
return instance;
}
ma classe humaine: Méthode
private String userName;
public Human(String userName) {
this.userName = Students.getInstance().nextUserName();
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserName() {
return userName;
}
Merci je l'ai changé ma netUserName() pour cela, mais il return null au lieu de exception.
public String nextUserName() {
StringBuffer user = new StringBuffer();
SystemManagement students = new SystemManagement();
String name1 = students.getName();
String family1 = students.getFamily();
if(name1 !=null && family1 !=null) {
char char1 = name1.charAt(0);
char char2 = family1.charAt(1);
setUserName(name1 + "." + family1);
if (user.length() != 0 && user.toString().equals(getUserName())) {
char[] allowedCharacters1 = {char1, char2, '1', '.'};
SecureRandom random = new SecureRandom();
for (int i = 0; i < user.length(); i++) {
user.append(allowedCharacters1[random.nextInt(allowedCharacters1.length)]);
}
setUserName(user.toString());
}
}
return getUserName();
}
Quelle ligne lance-t-il le pointeur nul? –
@Johanna - vous avez utilisé Java ... et SO ... assez longtemps maintenant que vous ne devriez plus avoir à vous rappeler d'inclure des traces de pile ET des numéros de ligne pertinents. Obtenez votre acte ensemble mon pote! –