Прежде всего, моя цель здесь - прочитать 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);
}
Ошибка, которую я получаю при попытке компиляции, следующая:
<code>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 выдает исключение, но яне знаю, как объявить / поймать этокогда я объявляю строку ..