如何使用的方法的java不同类的

问题描述:

方法1返回的对象的阵列:如何使用的方法的java不同类的

public train[] search_train() 
{ 
    int i=1; 
    try 
    { 
     String sql="select * from train "; 
     rs=st.executeQuery(sql); 

     while(rs.next()){ 
      t[i]= new train(); 
      t[i].train_id=rs.getInt("TRAIN_ID"); 
      i++;   
     } 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
    return t; 
} 

方法2(取对象数组):

train t[]= new train[20]; 
t=d.search(); 
System.out.print(t[2].no);` 

打印一个空值。

+0

后全(和实际)相关代码;)所有的 –

+0

首先,在实例't'没有点调用'搜索()'因为你实例化和返回内'搜索的数组(前)'已经。其次,向我们展示你的整个循环的代码也许我们可以为您指出正确的方向 – nem035

+0

'公共火车[] search_train(){ INT I = 1;尝试 {String sql =“select * from train”; rs = st.executeQuery(sql); (rs.next()){[t] = new train(); t [i] .train_id = rs.getInt(“TRAIN_ID”); i ++; } } 赶上(例外五) { e.printStackTrace(); } return t; }' – deisel

据的意见,将该溶液固定在阵列索引。

我想补充,也Java的命名约定喜欢大写的对象名称。 trainTrain,在这种情况下,和CamelCase方法名称或searchTrain。虽然,看起来这个方法应该叫做getTrains,因为在这个代码块中没有搜索。

public train[] search_train() { 
    int i=0; // <--- Java arrays are zero-indexed 
    try { 
    String sql="select * from train "; 
    rs=st.executeQuery(sql); 
    while(rs.next()){ 
     t[i]= new train(); 
     t[i].train_id=rs.getInt("TRAIN_ID"); 
     i++; 
    } 
    } catch(Exception e) { 
    e.printStackTrace(); 
    } 
    return t; 
}