Tag: guice 3

Java Generics:在运行时是否保留了有关generics类型的任何元信息?

背景 我对Javagenerics的理解是它完全是一个编译时function(主要关注类型安全检查)。 任何generics类的类型信息在运行时丢失( 类型擦除 )。 不过,我看到许多框架似乎也在运行时利用了类型信息。 例如,谷歌guice 提供商 。 guice提供程序可以在运行时实例化并提供它的generics类型的新实例。 class Container { @Inject public Container(Provider contentProvider) { //This works at Runtime… but How ??? //When type’s are not even preserved at runtime, how does the Provider knows it has to instantiate an object of type ‘Content’ Content content = contentProvider.get(); } } 题 是否存在与在运行时保留的generics类型相关的任何信息。 […]

当我尝试启动jetty时,为什么lambda表达式会破坏guiceerror handling?

我遇到以下问题,我尝试启动jetty,我得到以下的例外: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: There was an error in the forked process [ERROR] org.apache.maven.surefire.testset.TestSetFailedException: java.lang.RuntimeException: com.google.inject.internal.util.$ComputationException: java.lang.ArrayIndexOutOfBoundsException: 51966 [ERROR] at org.apache.maven.surefire.common.junit4.JUnit4RunListener.rethrowAnyTestMechanismFailures(JUnit4RunListener.java:206) [ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:114) [ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:85) [ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:54) [ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:134) [ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200) [ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153) [ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) [ERROR] Caused by: java.lang.RuntimeException: com.google.inject.internal.util.$ComputationException: java.lang.ArrayIndexOutOfBoundsException: 51966 [ERROR] at org.apache.maven.surefire.junitcore.TestSet.replay(TestSet.java:100) […]