我有一個服務DocumentServiceImpl。在這里面我想運行一個方法index()的class GlobalSearch背景。@Service@RequiredArgsConstructor public class DocumentServiceImpl implements DocumentService { ... any code@Transactional public void save(){... Thread indexTread = new Thread(new GlobalSearch(file, id), "GlobalSearch"); indexTread.start();.... }}方法index使用類GlobalSearch的從類ExtractTextFromFile方法。我使用構造函數和Lombok注釋@RequiredArgsConstructor注入類ExtractTextFromFile@Component@RequiredArgsConstructor public class GlobalSearch implements Runnable{ public final ExtractTextFromFile extractTextFromFile; (41 lines) public File file; public Long id; public GlobalSearch(File File, Long id){ this.file = file; this.id = id;}public void index(File file, Long id) { File textFile = extractTextFromFile.toText(file, id); ... code of this method}@Overridepublic void run() { index(file, id);}...other methodspublic void search(){...}public String delete(){...}}..但IDE給出Variable 'extractTextFromFile' might not have been initialize了public final ExtractTextFromFile extractTextFromFile;如果我使用注入:@AutowiredExtractTextFromFile extractTextFromFile;然后給出錯誤:Exception in thread "GlobalSearch" java.lang.NullPointerExceptionat bps.module.zxc.component.GlobalSearch.index(GlobalSearch.java:41)at bps.module.zxc.component.GlobalSearch.run(GlobalSearch.java:136)at java.lang.Thread.run(Thread.java:748)此類ExtractTextFromFile:@Component@RequiredArgsConstructor public class ExtractTextFromFile { public File toText(File file, Long id) { extractFromPfd(); extractFromWord(); } extractFromPfd(){...}; extractFromWord(){...}; }
2 回答

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
我解決了這個問題,刪除了GlobalSearch和ExtractTextFromFile類的注解@Component,然后將它們初始化為簡單的句點
GlobalSearch globalSearch = new GlobalSearch()
...和
ExtractTextFromFile extractTextFromFile = new ExtractTextFromFile()
添加回答
舉報
0/150
提交
取消