【问题标题】:Java class and return [closed]Java类和返回[关闭]
【发布时间】:2014-02-12 19:31:08
【问题描述】:

我有一个愚蠢的问题要问你们,因为我收到此代码的错误。

这是我在 Stackoverflow 上的第一篇文章,如有错误,请见谅。

我想通过这样说返回一个布尔值(真或假):

VerifyClassUnlocked.verify(account.email,account.password,"PRIEST");

在另一个班级。

package realmclient;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

public class VerifyClassUnlocked {

    public static boolean verify(String EMAIL, String PASSWORD, String CLASS) {
        URL url;
        InputStream is = null;
        BufferedReader br;
        String line;

        try {
            url = new URL("https://realmofthemadgod.appspot.com/char/list?guid="+EMAIL+"&password="+PASSWORD);
            is = url.openStream();  // throws an IOException
            br = new BufferedReader(new InputStreamReader(is));

            while ((line = br.readLine()) != null) {
                System.out.println(line);

                if (line.contains("<ClassAvailability id=\""+CLASS+"\">unrestricted</ClassAvailability>")){

                    return true;

                }else{

                    return false;                       
                }               
            }
        } catch (MalformedURLException mue) {
             mue.printStackTrace();
        } catch (IOException ioe) {
             ioe.printStackTrace();
        } finally {
            try {
                if (is != null) is.close();
            } catch (IOException ioe) {
                // nothing to see here
            }
        }
    }
}

【问题讨论】:

  • 你得到什么错误?这应该是您发布的第一件事和您搜索的第一件事。
  • 请提及问题并发表具体问题
  • 感谢大家的快速回答。我的问题是: public static boolean verify(String EMAIL, String PASSWORD, String CLASS) { 不正确。它说“它必须返回一种布尔值”。
  • 如果您的 while 的条件在第一次运行时返回 false 会发生什么?你的方法应该返回什么?如果try 内部抛出异常会怎样?

标签: java class url boolean return


【解决方案1】:

问题是,如果抛出异常,你会捕获它,然后放到方法的末尾而不返回值。您希望呼叫者此时看到什么?

我怀疑你要么想让异常向上传播堆栈,或者你想将return false; 语句移动到方法的底部。 p>

请注意,目前如果您成功阅读了 any 行,那是您要查看的唯一行 - 如果不是您要查找的行,您会立即返回 false。这真的是你想做的吗?不清楚为什么你会有一个 while 循环,它只会进行一次迭代......

【讨论】:

  • 非常感谢!这是一个愚蠢的错误。再次感谢您提供快速而有用的答案。我会尽快给声望。
猜你喜欢
  • 1970-01-01
  • 2013-06-26
  • 2020-02-17
  • 2015-04-19
  • 2021-12-13
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多