Так что я получаю ошибку «не удается найти символ - метод getIsNational()» в классе EX6, здесь код для всех классов участвуютНе удается найти метод объекта в ArrayList
public class Message
{
private String sender;
private String receiver;
private String content;
public Message(String ssender, String rreceiver, String ccontent){
sender=ssender;
receiver=rreceiver;
content=ccontent;
}
public String getSender(){
return sender;
}
public String getReceiver(){
return receiver;
}
public String getContent(){
return content;
}
}
Выше супер класс сообщений с некоторыми методами геттерных
public class NationalMessage extends Message
{
private boolean isNational;
public NationalMessage(String ssender, String rreceiver, String ccontent){
super(ssender, rreceiver, ccontent);
if(ssender.startsWith("UK") && rreceiver.startsWith("UK")){ //If the sender and reciever are from uk then it is national
isNational = true;
}else{//if not then it isnt national
isNational=false;
}
}
public boolean getIsNational(){
return isNational;
}
}
выше подкласс NationalMessage
import java.util.*;
public class Ex6 {
public static int countNational (ArrayList<Message> messageList) {
// This method just adds up the amount of Messages that are of type NationalMessage and when getIsNational is true.
int sum = 0;
try{
for(int i = 0; i < messageList.size(); i++){ //loop through arraylist given
if(messageList.get(i) instanceof NationalMessage){//if its of this type continue
if((messageList.get(i)).getIsNational()){ //Error occurs here
sum += 1;
}
}
}
return sum;
}catch(NullPointerExcpetion e){//in the case of messageList being null
System.out.println("Error");
return -1;
}
}
public static void main(String[] args){ // you can use this main method to test your
ArrayList<Message> messageList = new ArrayList<Message>();
messageList.add(new NationalMessage("UKJohn","UKMark","aa"));
messageList.add(new NationalMessage("UKJohn","FRJean","aa"));
messageList.add(new Message("Mike","John","aa"));
System.out.println(countNational(messageList));
}
}
И класс выше, где я получаю ошибку в строке 9, я не понимаю, почему он не может найти метод, я уверен, что это простое исправление, но как я могу это решить? Заранее благодарим за помощь.
на боковой ноте, вы не должны ловить 'NullPointerException'. Вместо этого сделайте нулевую проверку. –