【问题标题】:Java Class Method Error androidJava类方法错误android
【发布时间】:2013-07-07 08:31:21
【问题描述】:

我在标准 Java 类中有一个方法,它接受 String[] 作为参数并返回 String[]。基本上该方法是读取共享首选项并返回String[]。这里是:

public static String[] getPrefs(){
    String tempString = settings.getString("123", "0");
    if(tempString == ("0")){
        //show some type of error
        return null;
    }
    String[] ToReturn = tempString.split("@,#");
    return ToReturn;

还有错误:

这是第 3 行带有my error 的图片的链接。 我还遇到了一个错误,除了它在第 4 行之外没有什么说明。

在你问之前,LogCat 没有提供比我刚刚列出的更多的信息。这些都是运行时错误,eclipse 没有检测到任何错误。

提前感谢您的帮助。

【问题讨论】:

  • 为了将来参考,您应该在此处复制并粘贴错误消息。特别是,这可确保将来有类似问题的任何人都可以使用这些详细信息。您可能会决定从您的 Google 文档帐户中删除该图形文件,这会降低此问题对未来访问者的帮助。
  • tempString == (0)Stringint 进行比较。这将导致编译器错误。你到底想在这里做什么?

标签: android eclipse oop methods runtime-error


【解决方案1】:

换行

if (tempString == null) {
    //show some type of error
    return null;
}

这是您检查null 的方式,而不是通过调用.equals()。在null 对象上调用.equals()(或任何方法)将导致NullPointerException

编辑:第三次编辑后,您需要将其更改为

if(tempString.equals("0")){

因为tempString 将不再像编辑之前那样默认为null

【讨论】:

  • 我不在乎是否使用条件变量。我只是把它放在那里,因为它与 return 语句兼容。我只希望 if 语句检查字符串是否为空,如果是,则返回空。我更新了我的问题。
  • 很好。这是错误的,因为您在 null 对象上调用 .equals()。使用 == null 检查 null。我已经编辑了我的答案。
  • 我在我的问题中编辑了我的代码,它正确地进入了 if-then,但是我如何在 if-then 中使用该 return 语句,因为当我尝试它时,它没有返回并继续使用该方法?
  • 你又改了。现在你需要我对if(tempString.equals("0")){ 的回答。 **检查 null 是一种特殊情况,与检查其他任何内容不同 **。您不再检查空值。您正在检查它是否等于字符串“0”。所以你必须使用.equals()
  • 对不起,我将在新线程上开始这个问题。
猜你喜欢
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
相关资源
最近更新 更多