java 参数传class_如何传递Class作为参数并返回Java中的通用集合?

既然你说你不想让数据访问方法在不同的类(在对anish的答案的评论中),我以为为什么不尝试这样的东西。

public class Records {

public interface RecordFetcher{

public List getRecords();

}

static RecordFetcher Fruit=new RecordFetcher(){

public List getRecords() {

...

}

};

static RecordFetcher User=new RecordFetcher(){

public List getRecords() {

...

}

};

public static void main(String[] args) {

List fruitRecords=Records.Fruit.getRecords();

List userRecords=Records.User.getRecords();

}

}

编辑:

我想添加一个我的实现。

public class Test

{

public static void main(String[] args)

{

Test dataAccess=new Test();

List FruitList=dataAccess.getAllRecords(Fruit.myType);

List UserList=dataAccess.getAllRecords(User.myType);

}

List getAllRecords(T cl)

{

List list=new ArrayList();

if(cl instanceof Fruit)

{

// Use JDBC and SQL SELECT * FROM fruit

}

else if(cl instanceof User)

{

// Use JDBC and SQL SELECT * FROM user

}

return list;

}

}

class Fruit

{

static final Fruit myType;

static {myType=new Fruit();}

}

class User

{

static final User myType;

static {myType=new User();}

}

编辑:

我认为这个实现正如你所要求的那样

public class Test

{

public static void main(String[] args) throws InstantiationException, IllegalAccessException

{

Test dataAccess=new Test();

List FruitList=dataAccess.getAllRecords(Fruit.class);

List UserList=dataAccess.getAllRecords(User.class);

}

List getAllRecords(Class cl) throws InstantiationException, IllegalAccessException

{

T inst=cl.newInstance();

List list=new ArrayList();

if(inst instanceof Fruit)

{

// Use JDBC and SQL SELECT * FROM user

}

else if(inst instanceof User)

{

// Use JDBC and SQL SELECT * FROM fruit

}

return list;

}

}


版权声明:本文为weixin_39622643原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。