相关疑难解决方法(0)

运行时的局部变量的通用类型

Java中是否有一种方法可以反映泛型类型的局部变量?我知道你应该用一个字段 - 获取泛型类型的java.util.List.任何想法如何解决,例如:

public void foo(List<String> s){
  //reflect s somehow to get String
}
Run Code Online (Sandbox Code Playgroud)

或者甚至更一般:

public void foo<T>(List<T> s){
  //reflect s somehow to get T
}
Run Code Online (Sandbox Code Playgroud)

java generics reflection type-erasure

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

检查类型参数是否是特定接口

我正在写一个看起来像这样的工厂类:

public class RepositoryFactory<T> {
    public T getRepository(){
        if(T is IQuestionRepository){ // This is where I am not sure
            return new QuestionRepository();
        }
        if(T is IAnswerRepository){ // This is where I am not sure
            return new AnswerRepository();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如何检查它T是否是指定的类型interface

java factory

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

标签 统计

java ×2

factory ×1

generics ×1

reflection ×1

type-erasure ×1