Java 方法返回类型字符串不是字符串
首先,我的目标是读取URL,解析它,从中获取信息,并将其提供给另一个方法sendMessage,然后将其发送给IRC客户端。我做java的时间不长,所以我正在修改我在互联网上找到的代码。下面的方法在它们自己的类文件中声明时工作,并通过将URL传递给主方法来运行,但我似乎无法通过从MyBot调用类或在MyBot文件中声明方法来让它工作 我在尝试编译时遇到的错误如下: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
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中的方法名称不应该以大写字母开头。