尝试将新对象添加到另一个类的属性ArrayList时出现错误。让我解释一下。
UML
我的模型中确实有2个课程:
为简化起见,我们将其称为Equipo-> Team&Jugador-> Player。
对于每个团队,都会有多个玩家,所以我在Team类中创建了一个Player类型的ArrayList作为属性。
Equipo
library(lubridate)
library(dplyr)
#Define Data
data = data.frame(Entity =c("a","b","c","d","e","f","g"),
Code = c(3024,3024,2111,2111,2111,2111,2111),
Hour = c("8:00","8:05","8:11","8:18","8:33","8:50","9:08"))
data2 = data.frame(Total = c(102,5000,500,600,800,50,100,80),
Hour2 = c("7:55","7:58","8:00","8:10","8:30","8:45","8:55","9:05"))
#Create a dummy variable so that we can perform a cross join
data_dummy = data%>%
mutate(dummy = 1)
data2_dummy = data2%>%
mutate(dummy = 1)
# Cross join the data and create lead and lag times
final_df = data_dummy%>%
inner_join(data2_dummy,by = "dummy")%>%
select(-dummy)%>%
mutate(Hour = hm(Hour),
Hour2 = hm(Hour2))%>%
mutate(HourLag = hms(Hour - hms("00:05:00"),roll = T),
HourLead = hms(Hour + hms("00:05:00"),roll = T)
)
#Filter by the condition
final_df = final_df[final_df$Hour2 >= final_df$HourLag,]
final_df = final_df[final_df$Hour2 <= final_df$HourLead,]
#Join the the original dataset (Not required)
final_df = final_df%>%
group_by(Entity)%>%
summarise(Total_sum = sum(Total))%>%
inner_join(data,by = "Entity")
Jugador
public class Equipo {
private String nombre;
private LocalDate fechaAlta;
private String continente;
private char clasificado;
private ArrayList <Jugador> listaJugadores; //Muestra la relación
public Equipo(String nombre, LocalDate fechaAlta, String continente, char clasificado) {
this.nombre = nombre;
this.fechaAlta = fechaAlta;
this.continente = continente;
this.clasificado = clasificado;
}
.
.
.
}
主要
在主类中,我创建并初始化了Teams和Players ArrayLists。
public class Jugador {
private String jugador;
private int dorsal;
public Jugador(String jugador, int dorsal) {
this.jugador = jugador;
this.dorsal = dorsal;
}
.
.
.
}
我正在尝试将一个玩家添加到阵列中的最后一个团队
public static Ventana v1;
public static ArrayList <Equipo> listaEquipos;
public static ArrayList <Jugador> listaJugadores;
public static void main(String[] args) {
v1 = new Ventana();
v1.getearComboBox();
v1.setVisible(true);
//Inicializar arrays
listaEquipos = new ArrayList <Equipo>();
listaJugadores = new ArrayList <Jugador>();
但是,我遇到了我无法解决的NullPointerException错误。 https://imgur.com/a/Fc6ehlu
第98行:public static void inscribirJugador(String nombreJugador, String dorsalString){
//Conversion del dorsal
int dorsal = Integer.parseInt(dorsalString);
listaEquipos.get(listaEquipos.size()-1).getListaJugadores().add(new Jugador("nombreJugador", dorsal));
}
答案 0 :(得分:1)
如果您没有在ArrayList中至少放置一个团队,那么您将在空对象上调用getListaJugadores
。
实际上,如果ArrayList listaEquipos
为空,则在方法调用listaEquipos.get(listaEquipos.size() -1)
上将返回null。您必须至少有一支球队才能检索球员名单!