我有以下類我使用所有的車型在我的項目基地:Java:重寫父類的靜態變量?
public abstract class BaseModel
{
static String table;
static String idField = "id";
public static boolean exists(long id) throws Exception
{
Db db = Util.getDb();
Query q = db.query();
q.select(idField).whereLong(idField, id).limit(1).get(table);
return q.hasResults();
}
//snip..
}
然後我試圖從其擴展,以下列方式:
public class User extends BaseModel
{
static String table = "user";
//snip
}
但是,如果我嘗試做以下操作:
if (User.exists(4))
//do something
然後,而不是查詢:"SELECT id FROM user WHERE id = ?"
,它生產的問題:「從空選擇ID其中,ID = ?」。因此,User
類中的table
字段的重寫似乎沒有任何效果。
我該如何克服這一點?如果我在BaseModel中添加了setTable()
方法,並且在User
的構造函數中調用了setTable()
,那麼的新值是否也可用於User
類的所有方法?
點擊了給予好評,在答案太。 – UDPLover