「java泛型接口数组」java泛型接口参数

博主:adminadmin 2023-03-18 20:50:05 434

本篇文章给大家谈谈java泛型接口数组,以及java泛型接口参数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

泛型和数组以及Java是如何实现泛型的

要区分数组和泛型容器的功能,这里先要理解三个概念:协变性(covariance)、逆变性(contravariance)和无关性(invariant)。

若类A是类B的子类,则记作A ≦ B。设有变换f(),若:

当A ≦ B时,有f(A)≦ f(B),则称变换f()具有协变性;

当A ≦ B时,有f(B)≦ f(A),则称变换f()具有逆变性;

如果以上两者皆不成立,则称变换f()具有无关性。

在Java中,数组具有协变性,而泛型具有无关性,示例代码如下:

Object[] array = new String[10];

//编译错误

ArrayListObject list=new ArrayListString();

这两句代码,数组正常编译通过,而泛型抛出了编译期错误,应用之前提出的概念对代码进行分析,可知:

1、String ≦ Object

2、数组的变换可以表达为f(A)=A[],通过之前的示例,可以得出下推论:

f(String) = String[] 以及 f(Object) = Object[];

4、通过代码验证,String[] ≦ Object[] 是成立的,由此可见,数组具有协变性。

java 如何用泛型表示继承了Comparable接口的类的数组

class implements Comparable{。。。。。}

ArrayListclass c = new ArrayListclass();数组没有泛型的。

怎么在java中用泛型接口实现数组的增删改查

// 定义接口 public interface SyUsersService {

/***新增用户*/

public void addSyUser(SyUsers syUsers);

/***根据用户名得到用的注册信息***/

public SyLeaguer isRightPasswordProtect(SyLeaguer syLeaguer);

/***更新用户的密码***/

public void updateSyUserPassword(SyUsers syUsers);

/***用户登录验证***/

public boolean checkSyUserLogin(SyUsers syUsers);

/**

* 更新用户状态 * @param loginName 登录名 * @param state 状态号 0/1

* @return 是否更新成功 true/flase

*/

public boolean updateSyUserState(String loginName,Integer state);

/**

* 分页查询用户信息

* @param pageNo 页号

* @param pageSize 页面大小

* @param hqlQueryRule 查询规则

* @return Page 分页查询对象

*/

public Page querySyUserPage(int pageNo,int pageSize,HqlQueryRule hqlQueryRule);

/**

* 更新用户密码

* @param loginName 登录名 * @param oldPassword 旧的密码

* @param newPassword 新的密码

*/

public void updateSyUserPassword(String loginName,String oldPassword,String newPassword);

/**

* 根据查询规则查询用户

* @see HqlQueryRule

* @param hqlQueryRule 查询规则

* @return 结果集列表 */

public List querySyUser(HqlQueryRule hqlQueryRule);

/**

* 根据登录名获取用户信息 * @param loginName

* @return

*/

public SyUsers getSyUserByLoginName(String loginName);

/**

* 根据登录名获取用户信息

* @param loginName

* @return

*/

public boolean isRepeatUser(String loginName);

/**

* 更新用户

* @param loginName

* @return

*/

public void updateSyUsers(SyUsers syUsers);

}

// 实现接口 public class SyUsersServiceImp extends

org.springframework.orm.hibernate3.support.HibernateDaoSupport

implements SyUsersService {

protected static final Log logger = LogFactory.getLog(SyUsersServiceImp.class); public SyUsersServiceImp() {}

/***用户注册添加用户***/

public void addSyUser(SyUsers syUsers) {

this.getHibernateTemplate().save(syUsers);

Set babySet=syUsers.getSyLeaguer().getSyLeaguerBabies();

if(babySet!=nullbabySet.size()0){

SyLeaguerBaby baby=(SyLeaguerBaby)babySet.iterator().next();

this.getHibernateTemplate().save(baby);

}

}

/***用户登录***/

public boolean checkSyUserLogin(SyUsers syUsers){

String querySQL = "FROM SyUsers WHERE loginName=:username and loginPassword=:password and state=:state and isEmp=:isemp";

Query query = this.getSession().createQuery(querySQL);

query.setString("username", syUsers.getLoginName());

query.setString("password", syUsers.getLoginPassword());

query.setInteger("state", 1);

query.setInteger("isemp", 0);

List list = (List)query.list();

return list.size()0?true:false;

}

/***密码找回得到注册密保信息***/

public SyLeaguer isRightPasswordProtect(SyLeaguer syLeaguer){

String querySQL = "FROM SyLeaguer WHERE loginName=:loginname";

Query query = this.getSession().createQuery(querySQL);

query.setString("loginname", syLeaguer.getLoginName());

return (SyLeaguer)query.uniqueResult();

}

public void updateSyUserPassword(String loginName,String newPassword){

} public Page querySyUserPage(int pageNo, int pageSize,

HqlQueryRule hqlQueryRule) {

// TODO Auto-generated method stub

// Criteria c=this.getSession().createCriteria(SyUsers.class);

// for(int i=0;restrictList!=nullirestrictList.size();i++){

// c=c.add((Criterion) restrictList.get(i));

// }

// for(int i=0;orderList!=nulliorderList.size();i++){

// c=c.addOrder((Order) orderList.get(i));

// }

// c.setFirstResult((int)page.getStart());

// c.setMaxResults(page.getPageSize());

// List resultList=c.list();

//HqlQueryRule hqr=new HqlQueryRule();

//hqr.addEqual("id", new Integer(1234));

Page p = new Page();

Page page = null;

String queryPageHQL = "select new map( su.loginName as loginName, su.loginPassword as loginPassword,su.isEmp as isEmp) from SY_RES su where 1=1";

String countHQL = "select count(*) from SyUsers where 1=1 ";// 总记录数

queryPageHQL=queryPageHQL+hqlQueryRule.getHql();

Query query = this.getSession().createQuery(queryPageHQL);

List list = query.list();

PageTool pt=new PageTool(page);

page=pt.getHQLQueryPage(this.getSession(), queryPageHQL,countHQL, null);

return page;

} public boolean updateSyUserState(String loginName, Integer state) {

// TODO Auto-generated method stub

return false;

} public List querySyUser(HqlQueryRule hqlQueryRule) {

// TODO Auto-generated method stub

return null;

} public void updateSyUserPassword(String loginName, String oldPassword,

String newPassword) {

// TODO Auto-generated method stub

} public SyUsers getSyUserByLoginName(String loginName) {

return (SyUsers)this.getSession().get(SyUsers.class, loginName);

}

/***用户名是否重复***/

public boolean isRepeatUser(String loginName){

String querySQL = "FROM SyUsers WHERE loginName=:username";

Query query = this.getSession().createQuery(querySQL);

query.setString("username", loginName);

List list = (List)query.list();

return list.size()0?true:false;

}

public void updateSyUserPassword(SyUsers syUsers){

this.getSession().update(syUsers);

}

public void updateSyUsers(SyUsers syUsers){

this.getSession().update(syUsers);

}

}

java泛型接口数组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java泛型接口参数、java泛型接口数组的信息别忘了在本站进行查找喔。