关于java泛型和Object

问题描述

再网上下的一个ssh框架例子,对里面泛型的使用感到很困惑我简单的描述一下publicinterfaceBaseDao<T,IDextendsSerializable>{publicabstractvoidsave(Tt);}publicclassBaseDaoImpl<T,IDextendsSerializable>implementsBaseDao<T,ID>{publicvoidsave(Tt){this.getSession().save(t);}}看到这种结构我第一反应用法应该是:@AutowiredprivateBaseDao<SyRight,String>baseDao;可这是错误的必须publicclassSyRightDaoImplextendsBaseDaoImpl<SyRight,String>implementsSyRightDao必须通过这样继承来才行我想这里dao使用泛型肯定是想做一个通用的dao,避免每一个类都要建一个dao而这里的泛型用法,虽然里面的方法可以不重复写,但依旧每个类都对应一个dao,感觉很不方便我把泛型换成Object,行不行????这样的话,通用的就一个dao就行了。

解决方案

解决方案二:
也可以啊,使用范型和Object的区别其实在于当你使用范型之后,你获取模型值,可以直接获取到具体类型,不必进行强制类型转换而使用Object时,你就需要自己进行强制类型转换了

时间: 2024-08-07 15:39:11

关于java泛型和Object的相关文章

泛型和TreeSet的应用(一)

package cn.us; import java.util.Iterator; import java.util.TreeSet; //泛型和TreeSet的应用(一) //存入TreeSet集合中的元素是无序的,但有方法给它排序 //排序方式一:让元素自身具备比较性,需元素实现Comparable接口 //核心:重写Comparable接口的方法compareTo(Object obj) //if (tea.age == this.age) //年纪相同时再按照姓名排序!!! // ret

泛型和TreeSet的应用(二)

package cn.us; import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; //泛型和TreeSet的应用(二) //TreeSet实现排序的第二种办法:让容器本身实现排序的功能 //因为TreeSet有一构造方法:TreeSet tr=new TreeSet(Comparator c); //其参数为实现了Comparator接口的类 // //总结: //在方法一中,要让对象

java中使用Object类中比较遇到的问题,请帮忙解答一下。

问题描述 在java中由于Object是所有类的父类,而且equals方法是public,理论上所有Person类都能够继承并使用该方法.然而以下程序执行结果是false.```classPerson//定义了Person类,实际就是继承了Object类{privateStringname;privateintage;publicPerson(Stringname,intage){this.name=name;this.age=age;}}publicclassTestObject{public

反射-java.lang.IllegalArgumentException: object is not an instance of declaring class

问题描述 java.lang.IllegalArgumentException: object is not an instance of declaring class 目的:将目标xml的内容解析到一个java对象里边(xml的各个标签有对应的java类,并且有包含关系). NginxCache配置文件: <?xml version="1.0" encoding="utf-8"?> XXXAction/getXXX.rdm XXXBction/get

全面了解java基本类型和封装类型的区别及应用_java

1. 基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的. 2. 从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建).比如 Integer i=new Integer(10); 其中new Integer()是在堆上创建的,而他的引用Integer i是在堆栈上. 封装类的出现,是为了更方便的使用一些基本类型不具备的方法,比如valueOf(),toString()等等.还有你如果想传递一个int对象的引用,而不是值,那只能用

java基础之Object类_java

Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: public class Demo{ // ... } 实际上是下面代码的简写形式: public class Demo extends Object{ // ... } 在Java中,只有基本类型不是对象,例如数值.字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还是基本类型数组都是继承自

Java面向对象高级--Object类

在Java中一切的类都是以继承的关系存在的, class Person{} 如果一个类在定义时,没有明确指明继承那个类,则默认继承Object类. class Person extends Object{} class Demo{ // 定义Demo类,实际上就是继承了Object类 }; public class ObjectDemo01{ public static void main(String args[]){ Demo d = new Demo() ; // 实例化Demo对象 Sy

Java中的Object类详细介绍_java

理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. 该类中主要有以下方法: toString(),getClass(),equals(),clone(),finalize(), 其中toString(),getClass(),equals是其中最重要的方法. 注意: Object类中的getClass(),notify(),notifyAll(),wait()等方法被定义为f

JAVA类型和SQL类型的匹配

已动态创建表为例 (1)    public class DataType {      private int code;      private String SQLType;      private String localType = null;      private String params = null;      private boolean needsSetting = true;       public DataType(int code, String SQLT