Java:重写父类的静态变量?
2022-09-01 14:26:26
我有以下类,我将其用作项目中所有模型的基础:
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
然后,它不是查询:,而是生成查询:“从空中选择 id,其中 id = ?”。因此,在类中覆盖字段似乎没有任何效果。"SELECT id FROM user WHERE id = ?"
table
User
我该如何克服这个问题?如果我向 BaseModel 添加了一个方法,并在 的构造函数中调用 ,那么 的新值 是否也可用于该类的所有方法?setTable()
setTable()
User
table
User