`
ljhupahu
  • 浏览: 33769 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

查找泛型父类

 
阅读更多
对于泛型父类的查找,有助于base类的建立。

public class Father<T> {
private Class clazz;
public Father() {
this.clazz = null;
        Class c = getClass();
        Type t = c.getGenericSuperclass();
       
        //getGenericSuperclass 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type
        //Type 是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
        //ParameterizedType 表示参数化类型
        //getActualTypeArguments() 返回表示此类型实际类型参数的 Type 对象的数组。
       
        if (t instanceof ParameterizedType) {
            Type[] p = ((ParameterizedType) t).getActualTypeArguments();
            this.clazz = (Class<T>) p[0];
            System.out.print(p[0]);
        }
        else{
        System.out.println("类型不匹配1...");
        }
}
public void save() {
System.out.println("Type为: " + clazz.getSimpleName());
}
}


-----------------

public class Son extends Father<Integer> {

public static void main(String[] args) {
Son userdao=new Son();
userdao.save();
}

}



分享到:
评论

相关推荐

    06_第6章 泛型与集合1

    泛型在继承中的应用允许子类继承泛型父类并指定具体的类型,如`class MySubClass extends Generic&lt;String&gt;`。 然而,泛型也有一些限制,比如类型擦除:在编译后,所有的泛型信息都会被擦除,因此在运行时无法获取到...

    Java集合框架及泛型

    2. **边界通配符**: 如`&lt;? extends T&gt;`表示可以接受T及其子类的对象,`&lt;? super T&gt;`表示可以接受T及其父类的对象。这在方法参数传递和多态性方面很有用。 3. **泛型方法**: 方法也可以声明泛型,例如`public &lt;T&gt; ...

    java 带两个类型参数的泛型

    例如,你可以创建一个映射类,该类将基于键类型来查找特定值类型,或者在排序算法中,可能会有一个类需要同时处理两种类型的元素,如比较元素和它们的索引。 泛型还可以在方法中使用,以限制传入或返回的参数类型。...

    集合框架及泛型资料

    super T`表示T或T的父类。 5. **泛型方法**:方法也可以使用类型参数,提供更强大的类型安全。例如,`public static &lt;T&gt; void printList(List&lt;T&gt; list) {...}`。 6. **多态性与泛型**:泛型与多态相结合,可以...

    Java实验3泛型.doc

    `add(T t)`、`remove(T t)`、`findById(int id)`、`update(T t)`和`findAll()`是泛型类中的一些基本操作,它们允许添加、移除、查找、更新和获取所有的管理对象。 在`PersonManager`类中,`add`和`remove`方法接收...

    JAVA泛型 T K V E等代表的意思

    在Java中,`Object`是所有类的父类。在没有指定类型参数的情况下,默认的类型通常是`Object`。然而,使用`Object`作为类型参数可能会导致类型信息丢失,因此在使用泛型时,建议明确指定类型参数,如使用`T`、`K`、`V...

    查找代码C++来自《C++数据结构与程序设计》Robert L.Kruse Alexander J.Ryba

    继承(Inheritance)是面向对象编程的关键特性之一,它允许一个类(子类)继承另一个类(父类)的属性和方法。在C++中,可以通过`class Child : public Parent`这样的语法实现继承。在二分查找的上下文中,如果你有...

    Java开发技术大全(500个源代码).

    代码范例列表 第1章 示例描述:本章演示如何开始使用JDK进行程序的开发。...示例描述:本章学习泛型。 demoBounds.java 演示有界类型 demoForceChange.java 演示强制类型转换 demoGeneric.java ...

    C#_2.0新特性教案

    子类可以指定父类泛型的类型参数,或者添加自己的类型参数。 C# 2.0的泛型特性极大地增强了C#作为面向对象语言的灵活性和效率,使得开发人员能够在不牺牲性能的情况下编写更安全、可复用的代码。这些特性不仅改善了...

    关于C#泛型列表List&lt;T&gt;的基本用法总结

    - 查找元素:`list.IndexOf(item)`返回元素的索引,`list.Contains(item)`判断列表是否包含指定元素。 - 排序:`list.Sort()`默认根据对象的`IComparable&lt;T&gt;`接口进行排序,也可自定义比较器。 - 复制列表:`List...

    《Java和Android开发实战详解》第6到10章源代码-by 南邮-陈杨

    6.6.1 排序与查找的基础 113 6.6.2 冒泡排序法 113 6.6.3 顺序查找法 115 6.6.4 二分查找法 116 习题 117 第7章 类与对象 119 7.1 面向对象的应用程序开发 119 7.1.1 传统的应用程序开发 119 7.1.2...

    Java Generics and Collections

    3. **下限通配符**:`&lt;? super T&gt;`表示类型T或其父类,适用于方法参数,可以写入T类型的元素,但不能读取。 总之,Java泛型和集合框架是Java编程中不可或缺的部分,它们提供了强大的数据结构和类型安全机制,帮助...

    实验六,集合与范型.zip

    例如,`void copy(List&lt;? extends Number&gt; source, List&lt;? super Integer&gt; dest)`,这个方法可以从源列表(源列表中的元素是Number或其子类)复制元素到目标列表(目标列表可以接受Integer或其父类)。 4. 类型擦除...

    c#重写HashTable

    - 使用`override`关键字标识重写的方法,以确保正确调用父类的实现。 - 测试是关键,确保新实现的行为符合预期。 6. **泛型替代方案** 虽然`Dictionary, TValue&gt;`通常被视为更好的选择,但如果你仍然选择重写`...

    java经典编程300例2

    - **查找算法**:例如二分查找等,掌握其时间和空间复杂度分析。 #### 3. 异常处理 - **异常的概念**:了解什么是异常,异常处理的意义。 - **异常的分类**:学习运行时异常与检查型异常的区别,以及如何正确地抛出...

    简单的游戏,请指教啊

    例如,可以使用List来保存游戏中所有对象,或者Dictionary, Player&gt;来根据玩家ID查找玩家对象。 最后,序列化是将对象的状态转换为可以存储或传输的形式的过程,反序列化则是恢复这个状态。在C#中,可以使用`...

    考试管理系统(c#)开发

    在C#中,继承是面向对象编程的核心特性之一,它允许一个类(子类)从另一个类(父类)继承属性和方法。在考试管理系统的上下文中,我们可以创建一个基类`Exam`,包含通用的考试信息如考试名称、日期等。然后,针对...

    东北大学面向对象试卷

    试卷可能包含关于集合操作的问题,如添加元素、遍历、查找、排序等。 9. 内部类:Java支持类的嵌套,包括成员内部类、局部内部类、匿名内部类等。内部类可以访问外部类的成员,为代码结构提供更复杂的设计。试卷...

    C++学习教程-PPT.zip

    此外,C++标准库是学习的重要部分,其中包含大量的容器(如vector、list、set等)、算法(如排序、查找等)和I/O流(如iostream),它们极大地提高了开发效率。 在学习C++的过程中,实践尤为重要。通过编写小程序和...

    网梯Java笔试题

    6. 算法和数据结构:常见排序算法(冒泡、选择、插入、快速、归并),查找算法(线性查找、二分查找),链表、栈、队列等数据结构。 7. 内存管理:理解堆和栈的区别,以及对象生命周期和垃圾回收的工作原理。 8. ...

Global site tag (gtag.js) - Google Analytics