小编Sam*_*ong的帖子

Java泛型类的方法不适用于传递的参数

关于Java泛型,我有一个"奇怪"的问题.

首先我列出我的代码:

Service.class

package jse.generics.service;

public interface Service {

}
Run Code Online (Sandbox Code Playgroud)

ServiceProvider.class

package jse.generics.service;

public interface ServiceProvider<T extends Service> {

    public T getService();
}
Run Code Online (Sandbox Code Playgroud)

ServiceProviderRegistry.class

package jse.generics.service;

import java.util.HashMap;
import java.util.Map;

public class ServiceProviderRegistry<T extends Service> {

     private Map<Class<T>, ServiceProvider<T>> map = new HashMap<Class<T>, ServiceProvider<T>>();

     public void register(Class<T> clazz, ServiceProvider<T> provider) {
          map.put(clazz, provider);
     }
}
Run Code Online (Sandbox Code Playgroud)

FooService.class

package jse.generics.service;

public class FooService implements Service {

}
Run Code Online (Sandbox Code Playgroud)

FooServiceProvider.class

package jse.generics.service;

public class FooServiceProvider implements ServiceProvider<FooService> {

     @Override
     public FooService getService() {
          return …
Run Code Online (Sandbox Code Playgroud)

java generics

7
推荐指数
2
解决办法
9066
查看次数

Groovy:为什么闭包不能访问自身?

我是一个 Groovy 新手。当我运行以下脚本时,Groovy 报告“没有这样的属性:类 *** 的 tailFactorial”。闭包不应该访问局部变量 tailFactorial 吗?

def factorial(int factorialFor) {
    def tailFactorial = { int number, BigInteger theFactorial = 1 ->
        number == 1 ? theFactorial :
        tailFactorial.trampoline(number - 1, number * theFactorial)
    }.trampoline()
    tailFactorial(factorialFor)
}
println "factorial of 5 is ${factorial(5)}"
println "Number of bits in the result is ${factorial(5000).bitCount()}"
Run Code Online (Sandbox Code Playgroud)

让我感到困惑的是,如果我将上面的代码更改为以下代码:

def factorial(int factorialFor) {
    def tailFactorial
    tailFactorial = { int number, BigInteger theFactorial = 1 ->
        number == 1 ? theFactorial :
        tailFactorial.trampoline(number - 1, …
Run Code Online (Sandbox Code Playgroud)

groovy

2
推荐指数
1
解决办法
254
查看次数

标签 统计

generics ×1

groovy ×1

java ×1