【发布时间】:2016-05-15 21:02:00
【问题描述】:
所以我在 Ex6 类中收到错误“找不到符号 - 方法 getIsNational()”, 这是所有涉及的类的代码
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;
}
}
上面是带有一些getter方法的超类Message
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 行得到错误的地方,我不明白为什么它找不到方法,我确定这是一个简单的修复,但我该如何解决这个问题? 提前感谢您的帮助。
【问题讨论】:
-
在旁注中,您不应该关注
NullPointerExceptions。而是做一个空检查..
标签: java arraylist subclass superclass