請注意:儘管此問題專門討論了Netflix' Hystrix庫,但這絕對是一個純粹的Groovy/JVM泛型問題。任何乏味的Java/Groovy老手都應該能夠回答這個問題,不管他們對Hystrix有什麼知識/經驗。嵌套Groovy類型:內部泛型類型上的意外令牌
我想建立一個抽象基HystrixCommand
返回番石榴Optionals
作爲其通用RESULT
類型:
import com.google.common.base.Optional
import com.netflix.hystrix.HystrixCommand
abstract class BaseHystrixCommand<Optional<RESULT>> extends HystrixCommand {
// My code here...
}
但是這個代碼將生成以下編譯器錯誤:
Groovy:unexpected token: < @ line 23, column 42.
線23第42列是內部打開角度支架RESULT
:
...BaseHystrixCommand<Optional<RESULT...
^right here
在這裏使用Java 8,Groovy 2.4.3,Hystrix 1.4.18和Guava 18.0。任何想法是什麼導致此編譯器錯誤?
謝謝@Frank Pavageau(+1) - 問題是通過擴展'HystrixCommand'我必須重寫幾個方法,比如['HystrixCommand#run'](https://netflix.github.io/Hystrix/javadoc /com/netflix/hystrix/HystrixCommand.html#run())。我想我的run()覆蓋返回一個'Optional',**不只是一個'RESULT'。這裏的任何想法?這聽起來像我唯一的行動方式是或許用一個虛擬包裝器繼承'Optional',然後使用'BaseHystrixCommand >'? –
smeeb
例如,類'Optional OptionalWrapper extends Optional {}'? –
smeeb
我編輯了我的答案來解決您的其他問題。 –