2016-11-14 2 views
1

Пока я создаю нагрузку, моя программа дает ошибку ниже;незаконный запуск ошибки типа о моем коде

D:\views\UniqueAcctStorageRuleNameValidator.java:34: illegal start of type 
List<String> listOfAcctStorageRuleNameAsArray = 
    new ArrayList<>(listOfAcctStorageRuleName.size()); 

Это код;

public class FKAcctStorageRuleNameValidator extends AbstractAnnotationCheck<FKAcctStorageRuleName>{ 

    private static final long serialVersionUID = 1L; 

    private SpecbookValidatorManager specBookValidator; 

    @Override 
    public boolean isSatisfied(Object validatedObject, Object valueToValidate, 
      OValContext context, Validator validator) throws OValException { 
     if (valueToValidate == null) return true; 

     specBookValidator = SpecbookValidatorManagerImpl.getInstance(); 

     List<SpecbookAcctStorageRule> listOfAcctStorageRuleName = specBookValidator.getAcctStorageRuleList(); 

     List<String> listOfAcctStorageRuleNameAsArray = new ArrayList<>(listOfAcctStorageRuleName.size()); 
     for (SpecbookAcctStorageRule specbookAcctStorageRule : listOfAcctStorageRuleName) { 
     listOfAcctStorageRuleNameAsArray.add(specbookAcctStorageRule.getName()); 
     } 

     return ListUtil.containsIgnoreCase((String) valueToValidate, listOfAcctStorageRuleNameAsArray); 
    } 
} 
+0

какой jdk вы используете? Java SE 7 и более поздние версии, вы можете использовать алмаз <> .. Просьба проверить версию java-компилятора. – iMBMT

+0

Вы создаете 'ArrayList' из * what *? Разве дженерики в Java не нуждаются в типе? –

+0

@iMBMT Я использую Java SE 6. Когда я даю параметр алмазу, проблема решена. Спасибо за вашу помощь. – kaydemir

ответ

3

Вполне вероятно, что вы используете JDK версия, которая ниже, чем 7. Он не знает, что the diamond <> есть.

Переход к следующему будет решить вопрос:

new ArrayList<String>(listOfAcctStorageRuleName.size()); 

Конечно, вы вольны загрузить новую версию Java, чтобы использовать все удобные функции, которые не разрешены в предыдущих.

+0

Благодарим вас за информацию. Я использую JDK 6, и когда я даю тип диамонта как String в соответствии с вашим ответом, проблема решена. – kaydemir

Смежные вопросы