我有以下代码: 本质上,方法的数量应该与代码中的相同,我需要从emp_struct类型的对象链接列表的元素中提取字符串。我该怎么做?
import java.util.*;
import java.io.*;
class a1 {
static LinkedList l1;
private emp_struct input() throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
emp_struct obj = new emp_struct();
obj.emp_id = br.readLine();
obj.name = br.readLine();
obj.salary = Double.parseDouble(br.readLine());
obj.dept = br.readLine();
try{
search(obj);
}catch(Exception e){
System.out.println(e);
obj = input();
}
return obj;
}
boolean search(emp_struct obj)
{
int lastIndex = l1.lastIndexOf(l1);
int begIndex = 0;
for(begIndex =0;begIndex<lastIndex;begIndex++)
{
Object chkCase = l1.get(begIndex);
String chk = chkCase.getEmpID();
if(chk.equals(obj.emp_id));
throw new DuplicateEntryException("Duplicate entry found");
}
return true;
}
public static void main(String args[]) throws IOException
{
l1 = new LinkedList();
}
}
class DuplicateEntryException extends Exception {
String detail;
DuplicateEntryException(String a)
{
detail = a;
}
public String toString()
{
return "User Defined Exception : "+detail;
}
}
class emp_struct {
public String emp_id;
public String name;
public double salary;
public String dept;
public String getEmpID()
{
return emp_id;
}
public String toString()
{
return emp_id+"\t"+name+"\t"+salary+"\t"+dept;
}
}
答案 0 :(得分:0)
在搜索方法中,如果找到该值,则会抛出异常。如果找不到该值,则返回true
。这似乎不是最好的方法。
如果找到该值,则不应该返回true
,如果它在没有找到它的情况下通过数组,那么你不应该返回false
吗?
答案 1 :(得分:0)
这一行
Object chkCase = l1.get(begIndex);
应该是
emp_struct chkCase = (emp_struct)l1.get(begIndex);
除其他外......