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在列表中输入。您的列表被指定包含而不是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 回答
1

您的代码的问题是您将泛型参数定义为Class<? extends OrderChange>实例,而您可能需要将泛型类型设置为 simple ? extends OrderChange

两者之间的区别在于,您使用的那个包含对包含有关类的信息的数据结构的引用,例如,反射使用的信息。

相反,您需要的是一个可以包含任何子类的引用OrderChange

于 2013-07-15T14:58:00.547 回答