java无效方法声明; init,run中需要的返回类型

时间:2013-07-26 11:39:40

标签: java url exception init malformed

我正在制作迷你java游戏,编译时出错:

error:invalid method declaration;return type requied
public init() throws Exception {
       ^

第一个版本是public void init,但是我不能这样做,因为我需要使用try {..} catch(格式错误的......)或者在编译时我得到了另一个错误(需要抓住等等等等)。 / p>

这是代码:

public void run() throws Exception{
try{
this.zz();
}catch(MalformedURLException me){
throw me;
}
this.zo();
}

3 个答案:

答案 0 :(得分:2)

您忘记添加返回类型。因为你返回0,我假设你想要返回一个int。因此,将标题更改为:

public int init() throws MalformedURLException

没有理由拥有throws Exception。尽可能具体。

通常,方法的语法是:

访问修饰符 public,protected,private 返回类型 primitive,object,void )< strong>方法名称

以下是关于Defining Methods的Oracle教程。

此外,不确定这是否适用,但如果您只计划仅返回0或1,请考虑将方法标题更改为:

public boolean init() throws MalformedURLException

答案 1 :(得分:0)

error:invalid method declaration;return type requied
public init() throws Exception {
      ^
// You are missing the return type 

您忘记将返回类型添加到方法声明中。每个Java方法都应指定返回类型。如果它没有向调用者返回任何内容,请将其设为void。在您的情况下,它返回原始int,因此将int声明为返回类型。

需要稍微重新考虑您的代码:

// return type is int as you are returning primitive int `0`.
public int init() throws MalformedURLException {
    //...
    try{
     this.zx();
   }catch(MalformedURLException me){
    // log the Exception here
    // me.printStackTrace();
    // logger.error(... exception message ....);
    throw me;
    // in case you return 0 , in spite of the Exception 
    // you will never know about the exceptional situation
   }
   return 0;
 }

参考JLS 8.4

答案 2 :(得分:0)

返回类型是强制性的。你必须提供一个。我想,别逃避这一点。