`
- 浏览:
50725 次
-
interface Contact{
}
class BaseInfo implements Contact{
private String name;
private int age;
public BaseInfo(String name,int age){
setName(name);
setAge(age);
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return (this.name);
}
public int getAge() {
return (this.age);
}
public String toString(){
return "name:"+this.name+","+"age:"+this.age;
}
}
class Info implements Contact{
private String tel;
private String addr;
public Info(String tel,String addr){
setTel(tel);
setAddr(addr);
}
public void setTel(String tel) {
this.tel = tel;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getTel() {
return (this.tel);
}
public String getAddr() {
return (this.addr);
}
public String toString(){
return "telphone:"+this.tel+"address:"+this.addr;
}
}
class Person<T extends Contact>{
private T t;
Person(T t){
this.t=t;
}
public String toString(){
return this.t.toString();
}
}
public class Gen{
public static void main(String[] args){
Person<BaseInfo> per1=new Person<BaseInfo>(new BaseInfo("wang",21));
Person<Info> per2=new Person<Info>(new Info("152-666-231","benjing"));
System.out.println (per1);
System.out.println (per2);
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
泛型接口则定义了可以被任何类型实现的一组操作,这些类型可能是泛型类或其他类型。例如,我们可以定义一个泛型接口`IGenericCollection<T>`,要求实现它的类必须提供添加、删除和获取元素的方法: ```csharp ...
本文将详细介绍如何在C++中进行JSON文件的读写操作,特别是利用只引用头文件的方式,并且提供泛型接口,使得操作更加简便。 首先,我们需要一个C++库来处理JSON,例如nlohmann/json。这个库的特点是仅需包含头文件...
Struts2、Hibernate、Spring整合的泛型DAO (本人评价: 代码开发效率提高30% 代码出错率减少70%) 对于大多数开发人员,系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复...
但是,通过巧妙地使用void指针和类型转换,我们可以模拟泛型栈的实现,使得同一个栈操作代码可以处理不同类型的数据。 泛型stack操作算法的实现主要涉及以下步骤: 1. **定义栈结构**:首先,我们需要定义一个栈...
在Spring4框架中,开发者们迎来了一项重要的更新——更优的Java泛型操作API。这一新特性极大地提升了代码的可读性和可维护性,同时也为开发者提供了更强大的工具来处理泛型类型。本文将深入探讨Spring4在这个领域所...
泛型的关键在于类型参数化,这意味着可以将操作的数据类型指定为一个参数。泛型的类型参数可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。 ### 泛型类 泛型类是指在定义类的时候引入类型...
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
在Java中,集合框架的泛型操作包括添加、删除、查找和遍历元素。这些操作在运行时会进行类型检查,确保插入的元素与集合的泛型类型匹配。在"Demo"中,可能演示了如何通过泛型安全地操作Set等集合类。 7. **通配符*...
这篇博客"ssh2 + dao泛型"结合了这两个概念,探讨了如何在SSH2框架下利用泛型优化DAO层的操作。 SSH2框架主要由Spring、Struts和Hibernate三个部分组成,它为Java Web开发提供了强大的支持。Spring提供依赖注入和...
- **ActionSupport**:Struts2的ActionSupport基类并不直接使用泛型,但开发者可以创建自己的泛型Action,用于指定返回值类型,增强代码可读性和类型安全性。 - **结果映射**:在配置Struts2的Result类型时,可以...
2. **性能优化**:泛型集合避免了装箱和拆箱操作,直接操作值类型,从而提高了程序的执行效率。 #### 四、案例分析 为了更好地理解泛型集合与非泛型集合之间的差异,我们来看一个具体的例子。假设我们需要创建一个...
2. **消除类型转换**:使用泛型后,可以避免不必要的类型转换操作,使代码更加简洁明了。 3. **提升程序可读性**:泛型提供了更丰富的类型信息,使得代码的意图更为清晰。 4. **潜在性能优化**:虽然最初的实现中并...
2. **泛型接口**:与泛型类类似,泛型接口也可以包含类型参数,如 `IGenericInterface<T>`。实现这个接口的类需要提供具体的类型。泛型接口允许我们定义一组通用的行为,而不用关心具体的数据类型。 3. **泛型方法*...
2. 泛型方法: 泛型方法是在特定类或结构体中定义的,只在该方法内部使用类型参数。这样,方法可以处理多种数据类型,而无需重复编写相同代码。例如,以下代码展示了一个交换两个元素值的方法: ```csharp public ...
与非泛型集合相比,泛型集合提供了更强的类型安全性,减少了运行时的装箱与拆箱操作,提高了程序性能。 #### 三、Dictionary 类详解 `Dictionary, TValue>`类是.NET Framework 2.0中新引入的一个泛型集合类,它...
在C#中通过反射操作一个List泛型。。
在C#中,泛型允许我们创建可重用的数据结构和方法,这些结构和方法可以操作任何数据类型。这大大提高了代码的灵活性和类型安全性。例如,`List<T>`就是一个泛型类,其中`T`代表一个未指定的类型,实际使用时可以是...
Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了一组高效的数据结构和操作这些数据结构的方法。泛型则是Java在J2SE 5.0版本引入的一个特性,极大地提高了代码的类型安全性和可读性。下面我们将深入...
9. **泛型与装箱和拆箱**:泛型的一个主要优势是避免了值类型与对象之间的装箱和拆箱操作,这能提高性能并减少不必要的内存开销。 10. **泛型与集合**:C#中的许多集合类,如`List<T>`、`Dictionary, TValue>`、`...