有人可以向我解释为什么类不是
Java中的第一类对象吗?有一些模式可以很好地工作,如果它和我一直在编写带有getter和setter的工厂类,只是添加不必要的类,这样我就可以将实例传递给方法而不是实际的类来分解泛型代码.例如:
public class AsyncBookSearch extends AsyncTask {
public ListView list;
public AmazonItemAdapter adapter;
public AsyncBookSearch(ListView l,AmazonItemAdapter ad) {
list = l;
adapter = ad;
}
@Override
protected Void doInBackground(String... keywords) {
// TODO Auto-generated method stub
new BookSearch(keywords[0],list,adapter).parse();
return null;
}
}
我有几个这样的类,如果我想使整个事物通用,那么doInBackground()中的东西将导致在参数传递中的几个额外的方法和其他类型的重复,如果我可以编写以下内容将不会有问题:
public class AsyncItemSearch,S extends GenericItem> extends AsyncTask {
public ListView list;
public AmazonItemAdapter adapter;
public AsyncBookSearch(ListView l,AmazonItemAdapter ad) {
list = l;
adapter = ad;
}
@Override
protected Void doInBackground(String... keywords) {
// TODO Auto-generated method stub
new T(keywords[0],list,adapter).parse();
return null;
}
}
目前我无法在Java中编写类似的代码.我必须在所涉及的每个类中引入不必要的耦合,这只会使事情变得更加复杂,因为现在不仅每个实例都需要担心它自己的状态,而且还需要关注与它的任务完全无关的对象中的状态.