0

使い方はわかったつもりだった.classのですが、Class<>そうではないようです。以下super(ApprovalWorkstation.classはコンストラクターにマップされていません。WorkstationRequestベースがクラス参照をインスタンス化できるように、クラス参照を渡していることを確認するにはどうすればよいですか?

public class ApprovalWorkstation extends Workstation {

    public ApprovalWorkstation(WorkstationEntity entity) {
        super(entity);
    }
}

public class WorkstationRequest extends com.production.socket.request.WorkstationRequest {
    public WorkstationRequest() {
        super(ApprovalWorkstation.class); //unable to map to constructor
    }
}

WorkstationRequest上に伸ばしたベースです

public class WorkstationRequest {
    private Class<Workstation> workstationClass;

    public void WorkstationRequest(Class<Workstation> workstationClass) {
        this.workstationClass = workstationClass;
    }

アップデート

混乱して申し訳ありませんが、私のコンストラクターは実際には持っていて、最初に持っていたものではClass<Workstation>ありません。Workstation

4

4 に答える 4

4

Workstationクラスとその子クラスの両方を渡すことができるようにするには、定義をWorkstationRequest次のように変更する必要があります。

public class WorkstationRequest {
    private Class<? extends Workstation> workstationClass;

    public WorkstationRequest(Class<? extends Workstation> workstationClass) {
        this.workstationClass = workstationClass;
    }
}
于 2013-05-13T17:26:16.070 に答える