public abstract class InterruptableEvaluator<State> {
public abstract evaluate(State state);
public abstract haltEvaluation();
private final class EvaluationThread extends Thread {
private State state;
public EvaluationThread(State state) {
this.state = state;
}
@Override
public void run() {
evaluate(state);
haltEvaluation();
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于:
@Override
public void run() {
evaluate(state);
haltEvaluation();
}
Run Code Online (Sandbox Code Playgroud)
该对象state被视为一个java.lang.Thread.State对象,而不是使用参数InterruptableEvaluator.
如何明确告诉Java使用参数变量而不是java.lang.Thread.State?
为简洁起见,泛型通常包含单个字母用于类型参数,并且由于缺少使用单个字母命名的真正类.更改State为S参数中不是现有类/接口的任何其他有效类型名称以及它所使用的任何位置,您应该没问题.
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |