我還沒有看到這個確切的問題,這讓我感到驚訝。爲什麼我不能在if語句內部投射對象?
以下不會編譯:
public int compareTo(Object o)
{
if (this.order < ((Category o).order))
{
return -1;
}
else if (this.order > ((Category o).order))
{
return 1;
}
else
{
return 0;
}
}
而改變這一投的對象,並存儲其引用的條件語句之外的新對象修復該問題:
Category cat = (Category)o;
if (this.order < cat.order)
// Etc...
我的問題是,爲什麼在Java中不允許這種行爲? (Java 5專門)
編輯:啊哈!謝謝你們。爲現代IDE提供模糊的錯誤消息。我已經開始打折了,這次對我沒有任何好處。 (Netbeans警告我缺少括號和缺少分號......)
if(this.order <((Category)o).order) – Joel 2012-07-31 17:02:45
*有*缺少括號。 – EJP 2012-07-31 23:23:10
@EJP對,但沒有缺少分號。這既是我應該關注它的證據,也是這些信息可能不可靠的證據。 – BlackVegetable 2012-08-01 14:13:55