我有以下类我使用所有的车型在我的项目基地: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