私は解決できないような問題のあるXtextプロジェクトを持っています。次のコードを考えてみましょう:IResourceSetProviderを使用したNullPointerException?
@Inject
IResourceSetProvider resourceSetProvider;
private void function(){
IProject project = file.getProject();
URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
ResourceSet resourceSet = resourceSetProvider.get(project);
Resource resource = resourceSet.getResource(uri, true);
}
オブジェクト「ファイル」のIFileは、この関数の引数として渡されると、私はその内容にアクセスしても、文字列としてそれらをプリントアウトすることができていて、nullではないが、例えばれます。私はまた、そのIProjectフィールドにアクセスして、その上で操作を実行することもできます。しかし、私は、ResourceSet行、つまり ".get(project)"関数でNullPointerExceptionを取得しています。プロジェクトが間違いなくnullでない場合、このステップでNullPointerExceptionが発生する原因は何ですか?
ありがとうございました!
私はあなたが縮小囲みのクラス、輸入などを提供する必要があると思う。 – efekctive
お詫び申し上げます...助けていただきありがとうございますが、私はこれを修正するように見えません。あなたはresourceSetProviderについてnullだったので、何かがインジェクションで失敗しています... 私が示したこのコードブロックは、関連するならば、クラス内にあります。 –
さて、私は注射を一切取り除き、IResourceSetProviderを手作業でインスタンス化することで解決しました。 'IResourceSetProvider rs1 = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(uri).get(IResourceSetProvider.class); ' –