मैं निम्नलिखित वर्ग जो मैं अपने प्रोजेक्ट में सभी मॉडलों के आधार के रूप में उपयोग कर रहा हूँ:जावा: अभिभावक वर्ग के स्थिर चर को ओवरराइड करना?
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
}
हालांकि, अगर मैं निम्नलिखित करने की कोशिश: क्वेरी उत्पादन "SELECT id FROM user WHERE id = ?"
, यह है: बल्कि क्वेरी से फिर
if (User.exists(4))
//do something
, "शून्य से आईडी का चयन करें जहां आईडी = ? "। तो, User
कक्षा में table
फ़ील्ड को ओवरराइड करने का कोई प्रभाव नहीं प्रतीत होता है।
मैं इसे कैसे दूर कर सकता हूं? अगर मैंने विधि को बेसमोडेल में जोड़ा है, और User
के निर्माता में setTable()
कहा जाता है, तो table
का नया मान User
कक्षा के सभी तरीकों के लिए भी उपलब्ध होगा?
क्लिक वोट दें भी। – UDPLover