להפעיל פונקציה סטטית בטרד - ג'אווה - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


ofer_shm

Recommended Posts

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

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.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...