Java 方法中if子句中的return语句导致无法访问该方法的其余部分
我正在制作的android应用程序有问题。在下面的代码中,eclipse说第一个if语句下面的所有内容都是“不可访问的代码”。但情况不应该是这样,因为第一个if语句并不总是执行。不管我测试startTime的字符串是什么,不可访问的代码错误仍然存在,我做错了什么Java 方法中if子句中的return语句导致无法访问该方法的其余部分,java,android,Java,Android,我正在制作的android应用程序有问题。在下面的代码中,eclipse说第一个if语句下面的所有内容都是“不可访问的代码”。但情况不应该是这样,因为第一个if语句并不总是执行。不管我测试startTime的字符串是什么,不可访问的代码错误仍然存在,我做错了什么 public class Service implements Serializable { private static final long serialVersionUID = -1506952676619302741L;
public class Service implements Serializable
{
private static final long serialVersionUID = -1506952676619302741L;
private String expireTime = "No data";
private String startTime = "No data";
private String value = "No data";
private String name = "No data";
public long getHideTimeMillis() throws IllegalArgumentException
{
Time startTime = new Time(Time.getCurrentTimezone());
Time endTime = new Time(Time.getCurrentTimezone());
int[] startTimeSplit;
int[] endTimeSplit;
if(this.startTime.equals("No data"));
{
throw new IllegalArgumentException("Start time is not correctly formated.");
}
if(this.expireTime.equals("No data"))
{
throw new IllegalArgumentException("Expiry time is not correctly formated.");
}
startTimeSplit = splitDate(this.startTime);
endTimeSplit = splitDate(this.expireTime);
startTime.set(startTimeSplit[0], startTimeSplit[1], startTimeSplit[2], startTimeSplit[3], startTimeSplit[4], startTimeSplit[5]);
endTime.set(endTimeSplit[0], endTimeSplit[1], endTimeSplit[2], endTimeSplit[3], endTimeSplit[4], endTimeSplit[5]);
long difference = endTime.toMillis(false)-startTime.toMillis(false);
return (long)(difference*0.1+0.5);
}
}
删除
代码>来自此语句:
if(this.startTime.equals("No data"));
↑
这会导致您的方法总是抛出一个IllegalArgumentException
,因此无法访问该方法的其余部分删除
if(this.startTime.equals("No data"));<--!!!
由于抛出
,下面的代码无法访问
{
throw new IllegalArgumentException("Start time is not correctly formated.");
}