关于我的代码的非法启动类型错误

关于我的代码的非法启动类型错误

问题描述:

当我创建一个加载时,我的程序给出了以下错误;关于我的代码的非法启动类型错误

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

这可能是因为您使用的是JDK一个版本,这是低于7.不知道什么the diamond <>是。

更改为以下将解决这一问题:

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

当然,你可以*地下载新的Java版本使用未在以前的允许的所有方便的特点。

+0

谢谢你的信息。我使用的是JDK 6,当我根据你的回答给出diamon类型为String时,问题就解决了。 – kaydemir