【发布时间】:2011-01-10 12:16:18
【问题描述】:
首先,我的目标是读取一个 URL,解析它,从中获取信息,然后将它提供给另一个方法 sendMessage,然后将它发送到 IRC 客户端。我做java的时间不长,所以我正在修改我在互联网上找到的代码。以下方法在它们自己的类文件中声明时起作用,并通过将 URL 传递给 main 方法来运行,但我似乎无法通过从 MyBot 调用类或在我的MyBot 文件。
public static BufferedReader read(String url) throws Exception{
return new BufferedReader(
new InputStreamReader(
new URL(url).openStream()));}
public static String WebURL (String[] args) throws Exception{
BufferedReader reader = read(args[0]);
String line = reader.readLine();
String newURL = new String();
while (line != null) {
if (line.contains("<meta ")) {
String predef = new String(line.split("<meta content='")[1]);
//line.indexOf finds where to take up till, substring takes from beginning until there
String def = new String(predef.substring(0, (predef.indexOf("' name="))));
newURL = def;
}
else {
newURL = "No definition available";
}
line = reader.readLine(); }
return newURL;
}
现在我主要有以下几点:
if (message.startsWith("!def ")) {
String[] myArray = new String[2];
myArray[0] = message;
MyBot myURL = new MyBot();
myURL.WebURL(myArray);
sendMessage(channel, myURL);
}
我在尝试编译时遇到的错误如下:
MyBot.java:62: cannot find symbol
symbol : sendMessage(java.lang.String,java.lang.String)
cannot be applied to (java.lang.String,MyBot)
sendMessage(channel,myURL);
^
所以好像是在说MyURL不是String,但是方法返回类型是String..所以我这里明显有问题(可能是我用return错误吧?)
非常感谢任何人的帮助,如果有比这更好的方法来做我想做的事,我也会很高兴听到这个消息:) 谢谢!
编辑:对于告诉我将 myURL.WebURL(myArray) 传递给 sendMessage 的前几个答案,我已经这样做了,但是得到了以下错误,这让我更加困惑:
unreported exception java.lang.Exception; must be caught or declared to be throw
我知道这是因为 WebURL 引发了异常,但我不知道在声明字符串时如何声明/捕获它..
【问题讨论】:
-
与错误无关,但您展示的 MyBot 的两个方法都是静态方法,应该像这样调用:String something = MyBot.WebURL(...)。创建 MyBot 的实例在这里什么都不做。此外,按照惯例,Java 中的方法名称不应以大写字母开头。
标签: java string url methods return-type