//提取字段信息
   private void loadData(){
try{
ResultSetMetaData rsmd = conIns.rs.getMetaData();
for(int i =1; i<=fields.size(); i++)
{
String value = " ";
String name = rsmd.getColumnName(i).trim();
value = conIns.rs.getString(name);
JTextField txtField = (JTextField) fields.get(i-1);
txtField.setText(value);
}
}catch(Exception e){
System.out.print("Error in load data." + e);
    System.exit(1); 
}
   }---------------------------------------------------------------------------------
(1)JTextField txtField = (JTextField) fields.get(i-1); 
     这条语句是什么意思?,怎么强置类型转换,还能转成JTextField类型?有什么用?
(2)System.exit(1); 是什么意思?和System.exit(0);作用是相同的吗?

解决方案 »

  1.   

    1. 看一看fields的定义,我猜应该是定义成ArrayList, 其中放的都是JTextField实例,这样强制类型转换是可以的. 设计思想可能是将所有的JTextField实例都放在ArrayList中,每次取得数据后再从ArrayList中调出,将取得的值填入.
    2. System.exit(int status)都是退出运行,对于这个程序本身,没有什么用,但不同的status值可以给调用者不同的信息.如果是0,一般是正常退出,1就是异常了,当然你也可以定义你自己的退出值.
      

  2.   

    JTextField txtField = (JTextField) fields.get(i-1); fields可能为存放JTextField的一个容器,像楼上说的,可能是ArrayList,如果是以Object方式存放的话,在取出使用是必须要用强制类型转换。
      

  3.   

    对,我感觉fields是Vector或者ArrayList等等之类的,里面存放的肯定都是JTextField实例,所以这样强制类型转换是可以的
      

  4.   

    System.exit(1); 是什么意思?和System.exit(0);作用是相同的吗?
    -----------------------------------------
    System.exit(1); 把1返回给操作系统!表示运行出错了!System.exit(0)表示正常结束!
      

  5.   

    你都不告诉我们fields是什么类型,
    一旦fields.add(f)(如果有的话)参数f是JTextField类型,
    而fields.get(i-1)返回的是Object类型的话。(如果我的假设成立)
    这句JTextField txtField = (JTextField) fields.get(i-1);就是对的!