【问题标题】:My method keeps saying I need to return a string but my method has a return statement that returns a string我的方法一直说我需要返回一个字符串,但我的方法有一个 return 语句返回一个字符串
【发布时间】:2014-04-24 23:48:36
【问题描述】:

我有一个方法,假设去获取一个 JSON 对象,该对象包含英雄联盟的所有冠军 ID,我希望它根据传递给方法的“数字”返回冠军的名称程序中的另一个循环。

public String getChampionName(int number) //where it is saying its not returning a string
{
    try
    {
        String JSonChampionName = readURL("myURLwithAPIkey");
        JSONObject object = JSONObject.fromObject(JSonChampionName);
        JSONObject championData = (JSONObject)(object.get("data"));
        JSONObject champName = (JSONObject)(championData.get(number));
        if(object != null && championData != null && champName != null)
        {
            String cName = champName.get("name").toString();
            return cName;
        }
        else
            return "";
    }catch(Exception v){}
}

任何想法,我只是不确定为什么它告诉我该方法没有返回字符串。

【问题讨论】:

标签: java json parsing


【解决方案1】:

如果发现Exception 怎么办?在这种情况下,您的方法没有 return 语句。

要么不捕获Exception,要么在捕获Exception 的情况下提供return 语句。

【讨论】:

    【解决方案2】:

    编译器说您需要在程序可能采用的每个可能路径上返回一个字符串。如果发生异常,您将捕获它,但您的 catch 块将什么也不做;然后程序将落到方法的末尾而不返回任何内容。

    您需要修复您的方法,以便如果捕获到异常,您要么返回一些东西,要么抛出一些其他异常。

    【讨论】:

      【解决方案3】:

      您需要返回所有场景中预期的类型!!这就是编译器所期望的。

      现在,使用您实现的代码,问题是如果出现异常,此方法不会返回任何内容...

      这就是为什么编译器会抱怨,即使你有一个 return 语句..

      【讨论】:

        猜你喜欢
        • 2013-03-31
        • 2020-11-02
        • 2018-02-05
        • 1970-01-01
        • 1970-01-01
        • 2013-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多