相关疑难解决方法(0)

如何将Class作为参数传递并在Java中返回泛型集合?

我正在为我的Java应用程序设计一个简单的数据访问对象.我有一些类(记录)代表表中的单行UserFruit.

我想有一个方法来获取特定类型的所有记录.

目前我有这样的:

public List<User> getAllUsers() {
 ...
}

public List<Fruit> getAllFruits() {
 ...
}

....
Run Code Online (Sandbox Code Playgroud)

但我想有一个像这样的单一多态方法(错误):

public List<T> getAllRecords(Class<T> type) {
    if(type instanceof User) {
        // Use JDBC and SQL SELECT * FROM user
    } else if(type instanceof Fruit) {
        // Use JDBC and SQL SELECT * FROM fruit
    }
    return collection;
}
Run Code Online (Sandbox Code Playgroud)

用途示例:

List<Fruit> fruits = myDataAccessObject.getAllRecrods(Fruit.class);
List<User> users = myDataAccessObject.getAllRecords(User.class);
Run Code Online (Sandbox Code Playgroud)

我怎么能用Java做到这一点?

java generics polymorphism class parameter-passing

37
推荐指数
4
解决办法
8万
查看次数

DWR如何转换传入数据并规避类型擦除

我想请求一个项目类的集合(一种特定的反射).但关于类型擦除似乎是不可能的,也是关于我在堆栈上阅读的一些主题.有一些解决方法(这里),但我很好奇是否有人知道如何通过DWR完成它:

http://directwebremoting.org/dwr/documentation/server/configuration/dwrxml/signatures.html

或者如果有一些更好的解决方法,它会很棒.

假设我们有类似的东西:

public String foo(List<String> possibleFoos) {
Run Code Online (Sandbox Code Playgroud)

我需要的是找出参数possibleFoos是字符串列表,而不仅仅是List

java reflection collections dwr type-erasure

3
推荐指数
1
解决办法
186
查看次数