-1

我对eclipse android有一些问题。

我有一些java文件,但是如果我在返回后调用一个方法;(参见示例)它告诉我删除该方法。为什么?我使用的是安卓 1.6。

public void onClick(View paramView)
 {
  switch (paramView.getId())
{
default:
case 2131296257:
}
while (true)
{
  return;
  fetchAlarmSettings();  <-- It tells me to remove this.
  if (this.strAlarmOnOff.equals("0"))
  {
    this.butAlarmSet.setText("Turn Alarm Off");
    this.db.updateSetting("alarmTime", this.strHour.concat(this.strMinute));
    this.db.updateSetting("alarmOnOff", "1");
    switch (this.cal.compareTo(Calendar.getInstance()))
    {
    default:
    case -1:
    }
    while (true)
    {
      this.setNotifications.setAlarm(this.cal);
      break;
      this.cal.roll(5, 1);
    }
  }
  this.butAlarmSet.setText("Turn Alarm On");
  this.db.updateSetting("alarmOnOff", "0");
  this.setNotifications.turnAlarmOff();
}
 }

谢谢!

4

3 回答 3

6

您的方法将在return语句被命中的那一刻停止运行。基本上它应该给你一个' Unreachable code!'警告,因为 return 语句之后的任何代码都不会被执行。删除return关键字应该可以解决问题。

所以基本上 Eclipse 是告诉你删除之后的下一行,return因为它永远不会被执行。如果您删除方法调用,它将抱怨您接下来输入的任何一行。

除此之外,您的代码还有其他(根据我)缺陷......while(true)在这种情况下有一个没有中断条件的循环似乎很奇怪(但我在这里可能又错了)。此外,该default块通常位于一系列case语句的末尾。您的第二个while(true)循环只会迭代一次,因为一旦this.setNotifications.setAlarm(this.cal);执行,循环将由于break语句而停止迭代。

于 2012-04-20T11:15:18.010 回答
1

Eclipse 不允许您编写过时的代码,实际上 IDE 使用 java 编译器来实现这一点。

在这种情况下,特定分支中 return 下面的代码(意味着您可以在if和之后的代码中有 return else)是无法访问的,因此您会收到编译错误。

于 2012-04-20T11:15:39.597 回答
1

简单的回答,'return' 语句后不能执行任何操作。

于 2012-04-20T11:16:53.770 回答