Boa noite gente, sou novo na linguagem java, estou com um problema no meu projeto. Não estou conseguindo listarRota. Quando vou acessar o Menu de compras e coloca na opção Listar rotas, da erro. Se alguém tiver alguma solução. Não sei se ficou bem explicado.
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Cadastro {
Scanner ent = new Scanner (System.in);
private String op;
private List<Estacao> dados;
public List<Rota> dadosRota;
private List<Trem> dadosTrem;
public void cadastrarEstacao () {
	
	boolean permissao = true;
	
	dados = new ArrayList<Estacao> ();
	
	
	while (permissao) {
	Estacao e = new Estacao();
	System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
	System.out.println("Nome da estação: ");
	this.op = ent.nextLine();
	e.setNome(this.op);
	System.out.println("Cadastrar estação: S/N ");
	this.op = ent.nextLine();
	
	if(this.op.equals("s") || this.op.equals("S") ) {
		dados.add(e);
		System.out.println("Cadastro adcionado!");
	}else if (this.op.equals("n")) {
		System.out.println("Cadastro ignorado!");
	}else {
		System.out.println("Opção invalida!");
	}
	System.out.println("Aperte qualquer tecla para continuar cadastrando ou [N] para sair:");
	this.op = ent.nextLine();
	
	if(this.op.equals("N") ) {
		permissao = false;
	}else if (this.op.contentEquals("s")) {
		
	}else {
		permissao = false;
	}
	
	}
}
public void listarEstacao () {
	
	if (dados.size() == 0) {
		System.out.println("Nâo tem nenhuma estação cadastrada!!!");
	}else {
		for (int i = 0; i < dados.size(); i++) {
			System.out.println(dados.get(i).getNome());
		}
	}
	
}
public void cadastrarRota () {
	
	boolean permissao = true;
	dadosRota =new ArrayList<Rota>();
	
	while(permissao) {
		
		Rota r = new Rota();
		
		System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
		
		System.out.println("Nome da rota:");
		this.op = ent.nextLine();
		r.setNome(this.op);
		
		System.out.println("Digite todas as estações que compõem a essa rota: ");
		this.op = ent.nextLine();
		r.setEstacao(this.op);
		
		System.out.println("Cadastrar rota: S/N ");
		this.op = ent.nextLine();
		
		if(this.op.equals("s") || this.op.equals("S") ) {
			dadosRota.add(r);
			System.out.println("Cadastro adcionado!");
		}else if (this.op.equals("n")) {
			System.out.println("Cadastro ignorado!");
		}else {
			System.out.println("Opção invalida!");
		}
		System.out.println("Aperte qualquer tecla para continuar cadastrando ou [N] para sair:");
		this.op = ent.nextLine();
		
		if(this.op.equals("N") || this.op.equals("n") ) {
			permissao = false;
		}else if (this.op.contentEquals("s") || this.op.contentEquals("S")) {
			
		}else {
			permissao = false;
		}
		
		}
	}
public void listarRota() {
	
	if(dadosRota.size() == 0) {
		System.out.println("Nenhuma rota cadastrada!!!");
	}else {
		for (int i = 0; i < dadosRota.size(); i++) {
			System.out.println("Rota: "+ dadosRota.get(i).getNome());
			System.out.println("Estações: " + dadosRota.get(i).getEstacao());
		}
	}
	
}
import java.util.ArrayList;
import java.util.Scanner;
public class Menu {
private int op;
Scanner ent = new Scanner(System.in);
public void menuOp () {
    
	while(true) {
	System.out.println("===== Bem Vindo =====");
	System.out.println("DIGITE A OPÇÃO DESEJADA:");
	System.out.println("1 - Menu de cadastros:");
	System.out.println("2 - Menu de compras:");
	String op = ent.nextLine();
	
	switch (op) {
	
	case "1": 
		
		System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
		System.out.println("O que deseja cadastrar: ");
    	System.out.println("Trem: [1]");
    	System.out.println("Estação: [2]");
    	System.out.println("Cadastrar rota: [3]");
	    op = ent.nextLine();
	    
	    if (op.equals("1")) {
	    	
	    	menuTrem();
	    	
	    }else if (op.contentEquals("2")) {
	    	
	    	menuEstacao();
	
	    }else if (op.contentEquals("3")) {
	    	
	    	menuRota();
	    	
	    }else {
	    	System.out.println("Opção errada, favor digitar novamente!");
	    }
	    
		break;
	case "2":
		
		menuCompras();
		
		break;
		
		
	}
	}
}
public void menuEstacao() {
	boolean permissao = true; 
	Cadastro c = new Cadastro();
	while (permissao) {
	System.out.println("=-=-=-=-= Menu de cadastro de estações =-=-=-=-=");
	System.out.println("Selecione a opção:");
	System.out.println("N - Novo cadastro");
	System.out.println("L - Listar cadastros");
	System.out.println("X - Sair");
	String op = ent.nextLine();
	
		   if(op.equals("n")) {
			   c.cadastrarEstacao();
		   }else if (op.equals("l")){
			   c.listarEstacao();
		   }else if (op.equals("x")) {
			   permissao = false;
		   }else {
			   System.out.println("\nOpção invalida!");
		   }
    }
	
	
}
public void menuRota () {
	boolean permissao = true; 
	Cadastro c = new Cadastro();
	while (permissao) {
	c.dadosRota = new ArrayList <Rota>();
	System.out.println("=-=-=-=-= Menu de cadastro de rotas =-=-=-=-=");
	System.out.println("Selecione a opção:");
	System.out.println("N - Novo cadastro");
	System.out.println("L - Listar cadastros");
	System.out.println("X - Sair");
	String op = ent.nextLine();
	
		   if(op.equals("n")) {
			   c.cadastrarRota();
		   }else if (op.equals("l")){
			   if (c.getDadosRota() == null) {
				   System.out.println("nenhum item na lista!");
			   }else {
			   c.listarRota();
			   }
		   }else if (op.equals("x")) {
			   permissao = false;
		   }else {
			   System.out.println("\nOpção invalida!");
		   }
    }
}
public void menuTrem () {
boolean permissao = true; 
	Cadastro c = new Cadastro();
	
	while (permissao) {
	System.out.println("=-=-=-=-= Menu de cadastro de trens =-=-=-=-=");
	System.out.println("Selecione a opção:");
	System.out.println("N - Novo cadastro");
	System.out.println("L - Listar cadastros");
	System.out.println("X - Sair");
	String op = ent.nextLine();
	
		   if(op.equals("n")) {
			   c.cadastrarTrem();
		   }else if (op.equals("l")){
			   c.listarTrem();
		   }else if (op.equals("x")) {
			   permissao = false;
		   }else {
			   System.out.println("\nOpção invalida!");
		   }
    }
}
public void menuCompras () {
boolean permissao = true;
Cadastro c = new Cadastro();
System.out.println("=-=-=-= Bem vindo ao menu de compras =-=-=-= ");
	System.out.println("Digite a opção desejada:");
	System.out.println("1-Ver rotas:");
	System.out.println("2-Realizar compra:");
	System.out.println("3-Sair:");
	String op = ent.nextLine();
	
	while (permissao){
		   
		   if (op.equals("1")) {
		      c.listarRota();
		   }else if(op.equals("2")) {
			   System.out.println("");			      
		   }else if (op.equals("3")) {
			   permissao = false;
		   }else {
			   System.out.println("Opção invalida!");
		   }
		}
}
public int getOp() {
	return op;
}
public void setOp(int op) {
	this.op = op;
}
}