Java 方法返回类型字符串不是字符串

Java 方法返回类型字符串不是字符串,java,string,url,methods,return-type,Java,String,Url,Methods,Return Type,首先,我的目标是读取URL,解析它,从中获取信息,并将其提供给另一个方法sendMessage,然后将其发送给IRC客户端。我做java的时间不长,所以我正在修改我在互联网上找到的代码。下面的方法在它们自己的类文件中声明时工作,并通过将URL传递给主方法来运行,但我似乎无法通过从MyBot调用类或在MyBot文件中声明方法来让它工作 我在尝试编译时遇到的错误如下: if (message.startsWith("!def ")) { String[] myArray = new

首先,我的目标是读取URL,解析它,从中获取信息,并将其提供给另一个方法sendMessage,然后将其发送给IRC客户端。我做java的时间不长,所以我正在修改我在互联网上找到的代码。下面的方法在它们自己的类文件中声明时工作,并通过将URL传递给主方法来运行,但我似乎无法通过从MyBot调用类或在MyBot文件中声明方法来让它工作

我在尝试编译时遇到的错误如下:

if (message.startsWith("!def ")) {
        String[] myArray = new String[2];   
        myArray[0] = message;
        MyBot myURL = new MyBot();
        myURL.WebURL(myArray);
        sendMessage(channel, myURL);
    }
因此,似乎是说MyURL不是字符串,但方法返回类型是字符串。。很明显,我这里有些东西,可能我用return错了

非常感谢任何人的帮助,如果有比这更好的方法来做我想做的事,我也很高兴听到:谢谢

编辑:对于告诉我将myURL.WebURLmyArray传递给sendMessage的前几个答案,我已经这样做了,但出现了以下错误,这让我更加困惑:

未报告的异常java.lang.exception;必须被抓住或宣布被扔
我理解这是因为WebURL引发异常,但我不知道在声明字符串时如何声明/捕获此异常。

您需要传递myURL.WebURLmyArray的返回值才能发送消息

String myURLString = myURL.WebURL(myArray);
sendMessage(channel, myURLString);

错误消息非常正确-它们通常非常有用,并且几乎总是非常清楚类型错误。

您需要传递myURL.WebURLmyArray的返回值才能发送消息

String myURLString = myURL.WebURL(myArray);
sendMessage(channel, myURLString);
错误消息非常正确-它们通常非常有用,并且几乎总是非常清楚类型错误。

好的,myURL不是字符串,而是MyBot。您需要关联调用myURL.WebURLmyArray的结果;设置为字符串变量,并使用该变量调用sendMessage;:

我的URL不是一个字符串,而是一个MyBot。您需要关联调用myURL.WebURLmyArray的结果;设置为字符串变量,并使用该变量调用sendMessage;:


myUrl是行中的MyBot类型:

MyBot myURL = new MyBot();
如果将下一行更改为:

myURL.WebURL(myArray);
sendMessage(channel, myURL);
致:

应该行得通

编辑:如果要从myURL.WebUrlmyArray引发异常,请将其包含在try/catch块中:

String actualUrl = null;
try {
    actualUrl = myURL.WebURL(myArray);
} catch (Exception e) {
    actualUrl = "Something default";
}

myUrl是行中的MyBot类型:

MyBot myURL = new MyBot();
如果将下一行更改为:

myURL.WebURL(myArray);
sendMessage(channel, myURL);
致:

应该行得通

编辑:如果要从myURL.WebUrlmyArray引发异常,请将其包含在try/catch块中:

String actualUrl = null;
try {
    actualUrl = myURL.WebURL(myArray);
} catch (Exception e) {
    actualUrl = "Something default";
}
试着从

myURL.WebURL(myArray);
sendMessage(channel, myURL);
为此:

sendMessage(channel, myURL.WebURL(myArray));
您的WebURL方法返回一个字符串值,但您没有对其执行任何操作。相反,您要传递的是myURL对象本身,这就是为什么编译器告诉您不能应用于java.lang.String、MyBot消息的原因。这表示您正在将MyBot类型的内容传递给需要字符串的内容。

尝试从

myURL.WebURL(myArray);
sendMessage(channel, myURL);
为此:

sendMessage(channel, myURL.WebURL(myArray));

您的WebURL方法返回一个字符串值,但您没有对其执行任何操作。相反,您要传递的是myURL对象本身,这就是为什么编译器告诉您不能应用于java.lang.String、MyBot消息的原因。这意味着您正在将MyBot类型的某个对象传递给需要字符串的对象。

与错误无关,但您显示的两个MyBot方法都是静态方法,应该像以下那样调用:String something=MyBot.WebURL。。。。创建MyBot实例在这里什么都不做。另外,按照惯例,Java中的方法名称永远不应该以大写字母开头。这与错误无关,但是您展示的两个MyBot方法都是静态方法,应该像以下那样调用:String something=MyBot.WebURL。。。。创建MyBot实例在这里什么都不做。而且,按照惯例,Java中的方法名称不应该以大写字母开头。