我正在为我的Java应用程序设计一个简单的数据访问对象.我有一些类(记录)代表表中的单行User和Fruit.
我想有一个方法来获取特定类型的所有记录.
目前我有这样的:
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做到这一点?
我想请求一个项目类的集合(一种特定的反射).但关于类型擦除似乎是不可能的,也是关于我在堆栈上阅读的一些主题.有一些解决方法(这里),但我很好奇是否有人知道如何通过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 ×2
class ×1
collections ×1
dwr ×1
generics ×1
polymorphism ×1
reflection ×1
type-erasure ×1