gpt4 book ai didi

java - 将类类型存储在 bean 中

转载 作者:行者123 更新时间:2023-12-01 05:18:29 24 4
gpt4 key购买 nike

我有一个 ThreadPool 类,它有一个 add 方法,它接受一个 Runnable 和若干毫秒作为要调度的任务:

public static void addScheduler(Runnable r, long millis) {
//scheduling code
//now I want to save it to check later
ScheduledTask st = new ScheduledTask();
st.setTaskType(r.getClass());
st.setFrequency(millis);
persistentes.add(st); //this is an ArrayList<ScheduledTask>
}

现在我想将任务信息存储到ArrayList中以便稍后检查,但是当我保存任务信息并检查taskType时,它始终是java.lang.Class。我知道这是因为java类型删除,但是有没有办法存储类的类型?

这是我的 ScheduledTask 类:

public class ScheduledTask {

private Class<?> taskType;
private long frequency;

public Class<?> getTaskType() {
return taskType;
}

public void setTaskType(Class<?> taskType) {
this.taskType = taskType;
}

public long getFrequency() {
return frequency;
}

public void setFrequency(long frequency) {
this.frequency = frequency;
}

public String toString(){
return taskType.getClass().getName()+ ": " + (frequency / 1000) + " seg.";
}
}

最佳答案

我相信您的错误是调用 getClass() 次数太多:

public String toString(){
return taskType.getClass().getName() + ": " + (frequency / 1000) + " seg.";
}

taskType 是您要查找的类(例如 MyTask)。它的(原始)类型以及对 getClass() 的多余调用返回的内容是 java.lang.Class

public String toString(){
return taskType.getName() + ": " + (frequency / 1000) + " seg.";
}

关于java - 将类类型存储在 bean 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10828747/

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