一直都是接口泛型,例如List<User>,忽然间实体类泛型User<List>了,假如是这样,什么用法啊

PageFinder<ICommodityCollect> page = commodityCollectDal.getCommodityCollectPage(commodityCollectDoConverter.commodityCollectDo2Po(commodityCollectDo), pageNo, pageSize)
PageFinder:是分页的实体类
ICommodityCollect:接口,定义了一些方法
本人新手,突然间不懂。求大神赐教

这样的设计 一般的写法是:定义一个基接口(basicInterface), 然后基于整个接口 定义一些子接口 这些子接口都继承该基接口,然后定义各个子接口的实现类根据业务不同实现方法。

然后你提到的这个实体类中 会有一些方法来处理数据,当然 一般处理数据的代码是一样的,否则就不这么设计了。传入泛型接口的实现类,强制转换成Basic接口,然后调用某个方法。这样就是一个commonly used的类了。只要是继承自 BasicInterface 的接口 都可以用这个类。

package eg;

//基接口
public interface BasicInterface {

void doSth();

}

package eg;

//子接口
public interface SubInterface extends BasicInterface {

//可以加一些自己另外的接口  有点adaptor的意思, 但是新加的接口 就不能用公共类调用了,不在约定范畴内。
void doSthMySelf();

}

package eg;

public class Tst<I> {

public void process(I i){
BasicInterface b = (BasicInterface) i;
b.doSth();
}

public static void main(String[] args) {
Tst<SubInterface> t = new Tst<>();
//业务1
t.process(new SubInterface(){
@Override
public void doSth() {
System.out.println("具体实现1");

}
@Override
public void doSthMySelf() {
System.out.println("自己的接口,这里调不到");
}
});
//业务2
t.process(new SubInterface(){
@Override
public void doSth() {
System.out.println("具体实现2");

}

@Override
public void doSthMySelf() {
System.out.println("自己的接口,这里调不到");
}
});
}

}

其实也可以 只做一个子接口,或者不要子接口。 直接只对BasicInterface 实现。  其他接口自己写去, 跟这个接口不要关联。  根据实际业务需求吧,怎么设计都OK

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-07-10
接口定义方法,在实现类中去实现

~
~
~

一直都是接口泛型,例如List<User>,忽然间实体类泛型User<List>了,假如...
这样的设计 一般的写法是:定义一个基接口(basicInterface), 然后基于整个接口 定义一些子接口 这些子接口都继承该基接口,然后定义各个子接口的实现类根据业务不同实现方法。然后你提到的这个实体类中 会有一些方法来处理数据,当然 一般处理数据的代码是一样的,否则就不这么设计了。传入泛型接口的实现...

java的函数:public List<User> queryAll(),List<User>表示什么意思?
List<User>表示你的这个List集合里边只能存放User类型的数据,否则编译器报错。< >里边可以写任意类型。使用泛型的好处是为了让编译器帮你检查错误,防止在程序运行的时候会出现 类型不匹配,类型转换失败等错误。

List<User> 这个是什么意思?
这属于java泛型,java现在的版本,所有的容器类都用改为泛型实现了,其实你可以把尖括号中的内容理解成一个参数,该参数可以代表任何类,当然你可以位置限定条件,如可以限定上限条件,下限条件等。你所举例子,表示List中只能存放User类型的对象。

Java中public List<User> getUsers() 中的List<User>代表什么
List就是类型,就像平时的String、int那些 而<User>我印象中是叫泛型,你这里就代表定义一个集合存储User实体对象 这个泛型可写可不写

什么是泛型,有什么优点,泛型list和普通list
泛型可以加快程序的速度,指定集合或其他只能够存储某种类型的数据,方便维护 泛型list的速度肯定快于普通list

C#中什么是接口和泛型,举些单间的例子说明一下好吗?麻烦啦!
你现在还没有接触到 等你接触到的时候自然就会理解了 接口就是定义方法的规范 不需要实现 但是继承这个接口的泪一定要实现 泛型 主要去看List

深入理解java泛型-来龙去脉版
其实从这里也可以看出为什么泛型要求都是包装类,因为假如这里是int的话,无法进行与Obiect之间的强转。这会导致后续无数的自动装箱和开箱,也是java泛型慢的很重要的原因。 总之,java通过『泛型擦除』来实现泛型。在访问其中元素时,必要时会进行类型强转。用法 文章刚开始说过,泛型可以在类,接口,方法中使用。他们使用...

java中什么是泛型,怎么用泛型?
泛型只能定义引用数据类型,而不能使用基本数据类型 泛型类、泛型方法、泛型接口、泛型通配符 例如:作用在类上时( public class Animal <E> { E pet; } ) , 泛型跟在类后边,可以指定用了泛型的类内部的 pet 的类型。作用在对象上时( Animal<Dog> str = new Animal<Dog>(); ) , 泛型跟在类...

c#: public List<User> GetUserList(){return..}这个方法是返回一个List...
返回了一个User对象的List。List<T>里面可以存储泛型对象,这里的List<User>中的User是类名,List里面存储了若干User类的实例化对象。

public List<Users> list(String name)
1、这个一个方法 参数是一个string类型的 调用方法时需要带进一个string参数 2、返回值是一个泛型的集合 user是一个自定义类 泛型的意思是里面约束了一个种类 比如string 这个泛型里只能是string 类型 而本例这个泛型里就只能放users类型

相似回答