gpt4 book ai didi

java - 如何将变量传递给内部线程类?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:55:58 26 4
gpt4 key购买 nike

我想定期将图像加载到图像项中。我的外部类正在生成 URL,我需要将它传递给内部类。我如何实现这一点?

public class MapTimer extends TimerTask{
public void run() {
System.out.println("Map starting...");

String URL=null,serverquery=null;
try {
sendMessage(this.message);
item.setLabel(item.getLabel()+"start");
serverquery=receiveMessage();
item.setLabel(item.getLabel()+"stop");
URL = getURL(serverquery); // my url to be passed to innerclass
System.out.println("URl is "+serverquery);
item.setLabel(URL+item.getLabel());
Thread t = new Thread() {
public void run() {
item.setLabel(item.getLabel()+"6");
try {
Image image = loadImage(URL); // using url
System.out.println("GEtting image....");
item = new ImageItem(null, image, 0, null);
form.append(item);
display.setCurrent(form);

} catch (IOException ioe) {
item.setLabel("Error1");
}
catch (Exception ioe) {
item.setLabel("Error1");
}
}
};
t.start(); // write post-action user code here
}
catch(Exception e){
System.out.println("Error3"+e);
}
}
}

如何将 URL 传递给我的 innerthread 类?

最佳答案

您必须将变量声明为 final,或者不使用变量而是在类中使用字段。

public class YourClass {

private String url;

public void yourMethod {
url = getURL(serverquery);
System.out.println("URl is "+serverquery);
item.setLabel(URL+item.getLabel());
Thread t = new Thread() {
public void run() {
item.setLabel(item.getLabel()+"6");
try {
Image image = loadImage(url); // using url
System.out.println("GEtting image....");
item = new ImageItem(null, image, 0, null);
form.append(item);
display.setCurrent(form);

} catch (IOException ioe) {
item.setLabel("Error1");
}
catch (Exception ioe) {
item.setLabel("Error1");
}

}
};
t.start(); // write post-action user code here
}

关于java - 如何将变量传递给内部线程类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4913439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com