עבור לתוכן

להפעיל פונקציה סטטית בטרד - ג'אווה

Featured Replies

פורסם

שלום לכולם יש את המחלקה הבאה

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Hashtable;
import java.util.Map;




public class card {
public int cardid;
public static int numberOfCards=0;
public String input;
public String output;
public String blinds;
static Map cards=new Hashtable();
sql db;

card(int cardid)
{
numberOfCards++;
this.cardid=cardid;
System.out.println("card"+cardid+"created");
db=new sql();
ResultSet rs=this.db.selectQuery("select * from status where cardid='"+cardid+"'");
try {
rs.next();
this.input=rs.getString("input");
this.output=rs.getString("output");
this.blinds=rs.getString("blinds");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (cards.get(cardid)!=null)
{
cards.put(cardid, this);
}


}
public void updateCard()
{
ResultSet rs=this.db.selectQuery("select * from status where cardid='"+this.cardid+"'");
try {
rs.next();
this.input=rs.getString("input");
this.output=rs.getString("output");
this.blinds=rs.getString("blinds");
System.out.print(this);
} catch (SQLException e) {
// TODO Auto-gene`````1rated catch block
e.printStackTrace();
}

}
public String toString()
{
String t="-------------------------\n";
t="card: "+this.cardid+"\n";
t=t+"input= "+this.input+"\n";
t=t+"output= "+this.output+"\n";
t=t+"--------------------------\n";
return t;

}
public static void updateCards()
{
for(int i=0;i<numberOfCards;i++)
{
card temp=(card)cards.get(i+201);
temp.updateCard();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
updateCards();

}


}

כפי שניתן לראות הפונקציה האחרונה זו פונקציה סטטית שבסוף קוראת לעצמה וככה היא תמיד פועלת

כמובן אני רוצה לקרוא להפעיל אותה ב- thread ככה שהיא לא תפריע לשאר התוכנית להמשיך לרוץ

מישהו יכול לעזור לי איך אני מפעיל את הפונקציה הנל בתור thread

תודה

פורסם
  • מחבר

תודה על התגובה

אבל בדוגמא שהבאת לי אני צריך ליצור מופע של המחלקה ואז פונקציה run תופעל בטרד

מה שאני מנסה לעשות זה להפעיל פונקציה סטטית כטרד ....בלי ליצור מופע של המחלקה

פורסם

אתה חייב ליצור מחלקה כלשהי שמממשת את Runnable. זו לא חייבת להיות אותה המחלקה שבה הגדרת את המתודה הסטטית.

הדרך הכי פשוטה לעשות את זה היא באמצעות מחלקה מקומית אנונימית. ראה דוגמה כאן:

http://littletutorials.com/2008/03/09/anonymous-inner-classes

שים לב לאופן שבו יצרו את האוביקט r.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים