我对eclipse android有一些问题。
我有一些java文件,但是如果我在返回后调用一个方法; (参见示例)它告诉我删除方法。为什么?我正在使用Android 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();
}
}
谢谢!
答案 0 :(得分:6)
您的方法将在return
语句被命中的那一刻停止运行。基本上它应该给你一个'Unreachable code!
'警告,因为return语句之后的任何代码都不会被执行。删除return
关键字可以解决问题。
所以基本上Eclipse告诉你删除return
之后的下一行,因为它永远不会执行。如果你删除了方法调用,它会抱怨你接下来会抛出什么行。
除此之外,还有其他(根据我)你的代码存在缺陷......在这种情况下,没有中断条件的while(true)
循环似乎很奇怪(但是我可能在这里错了)。此外,default
块通常位于一系列case
语句的末尾。你的第二个while(true)
循环只会迭代一次,因为一旦执行this.setNotifications.setAlarm(this.cal);
,循环将因break
语句而停止迭代。
答案 1 :(得分:1)
Eclipse不允许你编写绝对代码,实际上IDE使用java编译器。
在这种情况下,某些分支中的返回下面的代码(意味着您可以在if
中返回并在else
的代码之后)无法访问,因此您会收到编译错误。
答案 2 :(得分:1)
简单回答,你不能在'return'语句后执行任何操作。