问题描述
- 一个小程序的问题——
- //这是一个关于个人信息管理系统的简单实现
//下面的是自己创建的收集信息的容器
//主函数和其他子类没有问题
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成员变量的类并返回
解决方案三:
我没描述清楚,date 只是我设置的一个成员变量,是String类型的,最后一个函数的意思是查找容器中所有包含date成员变量的类并返回
时间: 2024-09-19 01:42:58