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