據 Cannot Create, Catch, or Throw Objects of Parameterized Types (Java Tutorials):在拋出子句中使用泛型是否有效?
你可以,但是,在
throws
子句中使用類型參數:class Parser<T extends Exception> { public void parse(File file) throws T { // OK // ... } }
但爲什麼要?你不能在這裏構建T
。如果在外部構建它後注入T
,是不是它的堆棧跟蹤會全部錯誤?他們是不是簡單地記錄了一個偶然發生的功能,而不管它是否有用?