0

このように機能するメソッドが欲しいのですが、渡したオブジェクトのプロパティにアクセスできません。'.getFields()'、'getSuperType()' などのクラス メソッドしか呼び出せません。 OrderChange のサブクラスには rph フィールドがあり、その値が必要です。どうすればいいですか?

private boolean validateOrderChange(List<Class<? extends OrderChange>> input, boolean verifyOnly) {
    for (Class<? extends OrderChange> orderChange : input) {
        if (StringUtil.isNullOrEmpty(orderChange.getRph())) {
            return false;
        }
    }
}
4

2 に答える 2

1

Class<? extends OrderChange>コードの問題は、ジェネリック型を単純にする必要があるのに、ジェネリック パラメータをインスタンスとして定義していることです? extends OrderChange

2つの違いは、使用したものは、たとえばリフレクションによって使用されるクラスに関する情報を含むデータ構造への参照を保持することです。

反対に、必要なのは のサブクラスのいずれかを保持できる参照ですOrderChange

于 2013-07-15T14:58:00.547 に答える
1

Class私の見方では、リストにタイプがありません。リストは、OrderChange クラスのインスタンスではなく、クラスを含むように指定されています

private boolean validateOrderChange(List<? extends OrderChange>> input, boolean verifyOnly) {
    for (OrderChange orderChange : input) {
        if (StringUtil.isNullOrEmpty(orderChange.getRph())) {
            return false;
        }
    }
}
于 2013-07-15T14:56:54.973 に答える