2016-11-14 8 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

* what *の 'ArrayList'を作成しますか? Javaのジェネリックスに型が必要ないのですか? –

+0

@iMBMT Java SE 6を使用しています。ダイヤモンドにパラメータを渡すと、問題は解決されます。ご協力いただきありがとうございます。 – kaydemir

答えて

3

それはあなたがJDKそれはthe diamond <>が何であるかを知らないよりも低い7であるバージョンを使用している可能性があります。以下に変更

は、問題を解決します:もちろん

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

を、あなたは以前のものでは許可されていないすべての便利な機能を使用するには、より新しいバージョンのJavaをダウンロードして無料です。

+0

情報ありがとうございます。私はJDK 6を使用していますが、答えとしてStringとしてdiamonタイプを指定すると、問題は解決されます。 – kaydemir

関連する問題