一个小程序的问题——

//这是一个关于个人信息管理系统的简单实现
//下面的是自己创建的收集信息的容器
//主函数和其他子类没有问题
public class PIMCollection implements Collection {
ArrayList arr = newInstance();
ArrayList tmp;
private ArrayList newInstance()
{
return new ArrayList();
}
//其中省略了实现的方法,都没有编译错误
public Collection getNote(){
tmp = newInstance();
for(T obj:arr)
{
if(obj.getClass().getName().equals("hw_1.PIMNote"))
tmp.add(obj);
}
if(tmp.isEmpty())
return null;
else
return tmp;
}
public Collection getTodo(){
tmp = newInstance();
for(T obj:arr)
{
if(obj.getClass().getName().equals("hw_1.PIMtodo"))
tmp.add(obj);
}
if(tmp.isEmpty())
return null;
else
return tmp;
}
public Collection getAppointment(){
tmp = newInstance();
for(T obj:arr)
{
if(obj.getClass().getName().equals("hw_1.PIMAppointment"))
tmp.add(obj);
}
if(tmp.isEmpty())
return null;
else
return tmp;
}
public Collection getContact(){
tmp = newInstance();
for(T obj:arr)
{
if(obj.getClass().getName().equals("hw_1.PIMContact"))
tmp.add(obj);
}
if(tmp.isEmpty())
return null;
else
return tmp;
}
//输出各子类中带有date的类
public Collection getItemForDate() throws NoSuchFieldException, SecurityException{
tmp = newInstance();
for(T obj:arr)
{
if(obj.getClass().getDeclaredField("date")!=null)
tmp.add(obj);
}
if(tmp.isEmpty())
return null;
else
return tmp;
}
}
/*
*main函数中关于上面的输出形式为
*/case "List" :
{
System.out.println("There are "+i+" items");
System.out.print("note Item 为");
System.out.println(c.getNote());
System.out.print("todo Item 为");
System.out.println(c.getTodo());
System.out.print("appointment Item 为");
System.out.println(c.getAppointment());
System.out.print("contact Item 为");
System.out.println(c.getContact());
System.out.print("包含date feild Item 为");
System.out.println(c.getItemForDate());
break;
}
//输出为:
here are 3 items
note Item 为[note nnvbv iiii]
todo Item 为[todu 13123 qqqqqq ppp, todu 3534534 wwwwww oooo]
appointment Item 为null
contact Item 为null
包含date feild Item 为---Enter a command (suported commands are List Create Save Quit)---
为什么最后关于date的函数没有输出?如果没有date选项的话也应该返回null的,为什么没有任何返回值?
本人比较穷,没有金币,请大神解答谢谢

因为你返回的是Collection不是Date

我没描述清楚,date 只是我设置的一个成员变量,是String类型的,最后一个函数的意思是查找容器中所有包含date成员变量的类并返回