【发布时间】:2014-02-24 21:21:33
【问题描述】:
我有下面的方法,它将数据传递到一个也包含在内的对象中。如果我一步一步调试程序,那么我可以看到正确的数据被传递到对象的每个字段中。但是,一旦我尝试执行 println,我就无法从对象中获取正确的数据
对于循环的每次迭代,从scrape中获取的数据被传递给对象:
[Prague, Aer, Lingus, EI645, 24, Feb, 17:15, Arrived, 17:32]
并且毫无问题地分配给所有字段。当我调用 print 方法时,我得到以下内容,而不是上述行之一
====================TEST=======================
com.beezer.DublinAirportArrivals.ArrivalDetails@25595f51
================END TEST=======================
我在这里做错了什么?
public HtmlParser(Properties config) throws IOException{
url = config.getProperty("url");
airline = config.getProperty("airline");
print("Fetching.........%s" , url);
}
public ArrayList<ArrivalDetails> process() throws IOException{
Document doc = Jsoup.connect(url).get();
Elements tableRow = doc.getElementsByTag("tr");
for(Element tr : tableRow){
if(tr.text().contains(airline)){
if(tr.text().contains("Arrived")){
String delims = "[ ]+";
String[] singleRowArray = tr.text().split(delims);
ArrivalDetails temp = new ArrivalDetails(singleRowArray);
capture.add(temp);
}
}
}
testPrint();
return capture;
}
public static void testPrint(){
System.out.println("====================TEST=======================");
System.out.println(capture.get(capture.size()-1));
System.out.println("================END TEST=======================");
}
这是我的另一堂课
public class ArrivalDetails {
public ArrivalDetails(String[] singleRowArray) {
String origin = singleRowArray[0];
String airline1 = singleRowArray[1];
String airline2 = singleRowArray[2];
String flightNo = singleRowArray[3];
String date = singleRowArray[4];
String month = singleRowArray[5];
String ArrTime = singleRowArray[6];
String status = singleRowArray[7];
}
}
【问题讨论】:
-
您尚未覆盖
ArrivalDetails类的toString()方法。 -
你能给我解释一下吗?
-
当你说
println(capture.get(capture.size()-1))时,Java 不知道你想显示什么。你想让它只打印原点吗?也许只是日期?您必须通过编写toString()方法来指定要打印的内容。 -
@mcgowan.b 鉴于这个问题和您的其他问题,我强烈建议您花一些时间使用 Oracle 提供的非常好的免费在线 Java Tutorial。 this page的底部回答了这个问题。
标签: java arrays argument-passing