Java SwingWorker中的类型参数是什么?
我有以下代码在后台执行登录过程:Java SwingWorker中的类型参数是什么?,java,swing,swingworker,Java,Swing,Swingworker,我有以下代码在后台执行登录过程: private class LoginThread extends SwingWorker<Boolean, Object> { private Controller controller; private String userName; private String password; public LoginThread(Controller controller, Strin
private class LoginThread extends SwingWorker<Boolean, Object> {
private Controller controller;
private String userName;
private String password;
public LoginThread(Controller controller, String userName, String password) {
this.controller = controller;
this.userName = userName;
this.password = password;
}
@Override
protected Boolean doInBackground() throws Exception {
status.setText("Try to log in user " + userName + "...");
return controller.login(userName, password);
}
@Override
protected void done() {
try {
if (get()) {
controller.loginDone();
} else {
showErrorMessage("Can't login user " + userName + ".");
}
} catch (Exception ignore) {
showErrorMessage("Can't login user " + userName + ".");
}
}
}
私有类LoginThread扩展SwingWorker{
专用控制器;
私有字符串用户名;
私有字符串密码;
public LoginThread(控制器控制器、字符串用户名、字符串密码){
this.controller=控制器;
this.userName=用户名;
this.password=密码;
}
@凌驾
受保护的布尔值doInBackground()引发异常{
status.setText(“尝试登录用户”+用户名+”);
返回控制器。登录名(用户名、密码);
}
@凌驾
受保护的void done(){
试一试{
if(get()){
controller.loginDone();
}否则{
错误消息(“无法登录用户”+用户名+”);
}
}捕获(异常忽略){
错误消息(“无法登录用户”+用户名+”);
}
}
}
我在API中找不到SwingWorker的第二个类型参数是什么的解释。第一种类型可能是doInBackground方法返回的类型,但第二种类型是什么?如文档中所述:
java.lang.Object
javax.swing.SwingWorker
类型参数:
T-此SwingWorker的doInBackground和返回的结果类型
获取方法
V-该SwingWorker的操作员用于执行中间结果的类型
发布和处理方法
谢谢在API版本5中,我找不到这一点。那么我应该通过什么作为第二种类型呢?对象不会为false,但有理由改用布尔值吗?@Roflcoptr:因为您在任何地方都不使用发布或处理,所以第二个参数可以是任何值,但不应该是
Void
。非常感谢!但如果我将其更改为私有类LoginThread extensed SwingWorker,则会得到一个错误:此标记后应为维度。@Roflcoptr:请重新阅读我的注释void
不等于void
。有一个微妙但重要的区别。
java.lang.Object
javax.swing.SwingWorker<T,V>
Type Parameters:
T - the result type returned by this SwingWorker's doInBackground and
get methods
V - the type used for carrying out intermediate results by this SwingWorker's
publish and process methods