Java에서 MVC GUI 프로젝트를하고 있습니다. 3 개의 프레임과 3 개의 컨트롤러, 각보기마다 1 개 있습니다. 문제는 Person 객체를 만들 수 있지만 정적 ArrayList에서 값을 가져 오려는 경우 저장되는 위치가 NullPointerException을 보냅니다. 하지만 ArrayList는 비어 있지 않기 때문에 TestCases에서 이것을 확보했습니다.Java - 정적 객체에서 속성을 가져올 수 없습니다.
public class ControladorFormulario {
public static PoolPersonas poolPersonas = new PoolPersonas();
public static Persona persona = new Persona();
public static void activarVistaEditar(String dni, Formulario frame) {
if (dni == null) {
return;
}
frame.getTxtDni().setText(dni);
frame.getTxtDni().setEnabled(false);
Persona persona = poolPersonas.obtenerPersona(dni);
frame.getTxtNombre().setText(persona.getNombre());
}
}
그리고 문자열로 사람을 얻는 방법은 다음 중 하나입니다 : 나는 activarVistaEditar 함수를 호출 버튼을 누르면
public Persona obtenerPersona(String dni) {
Persona personaObtenida = null;
for (Persona persona : getPoolPersonas()) {
if (persona.getDni() == dni) {
personaObtenida = persona;
}
}
return personaObtenida;
}
그래서, 어떻게 든 널 값을 나에게 돌려, 내가 접근하려고하는 사람 대신에.
나는 올바른 String과 Frame을 함수에 전달했고, 값이 올바른지 확인했다. 나는 왜 내가 풀장에있는 사람들에게 접근 할 수 없는지 이해하지 못한다. 이곳에있는 개체. 나는 다른 곳에서 그것을 할 수있다. 지르콘 같은
가능한 복제본 [Java의 문자열을 어떻게 비교합니까?] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – Zircon
가능성이있는 것처럼 보입니다. PoolPersonas에 페르소나를 추가하지 않았습니다. - PoolPersonas는 비어 있습니다. 이 경우 obtenerPersonas는 null을 리턴합니다 (PoolPersonas가 null이 아님을 가정). – HedonicHedgehog
'if (persona.getDni() == dni) {'를'if (persona.getDni(). equals (dni)) {' –