本篇文章给大家谈谈java 泛型 实现接口,以及泛型类,泛型接口,泛型方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享java 泛型 实现接口的知识,其中也会对泛型类,泛型接口,泛型方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java编程题:请按照下列提示编写一个泛型接口以及其实现类?
Generic.java:
package com.example.demo;
public interface Generic<T {
void get(T t);
}
GenericImpl.java:
package com.example.demo;
public class GenericImpl<T implements Generic<T {
@Override
public void get(T t) {
}
}
Java接口内定义泛型方法如何实现
接口 IHuman.java
public interface IHuman<K, V {
V execute(K request) throws Exception;
}
实现 MaleHuman.java
public class MaleHuman implements IHuman<String, String {
@Override
public String execute(String request) throws Exception {
return ...;
}
}
按照以上接口内的泛型方法
java 泛型 实现接口,能进行子类实现也不会报错。
但是接口内的泛型方法换种写法
java 泛型 实现接口,就不知道如何写实现了。
接口 IHuman.java (改)
public interface IHuman {
<K, V V execute(K request) throws Exception;
}
怎么在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!=nulli<restrictList.size();i++){
// c=c.add((Criterion) restrictList.get(i));
// }
// for(int i=0;orderList!=nulli<orderList.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 泛型 实现接口了。
有了泛型 你可以再hashtable中存任何类型的value 包括自定义的类
例如。有一个类是 class client{}
Hashtable<String ,client ht = new Hashtable<String ,client();
很方便的东西。让你代码更完美的。
=============================接话献佛========================
应该是我很久没有好好学技术了,有时候想用的时候却发现不会写,比如今天遇到了泛型接口,所以要记录一下,这样才能更明白...
在这里我并不想说泛型接口怎么写,这个很简单,后面会写的,只是想说我为什么要用.
泛型接口的意图是什么?请看如下的问题:
Java代码
abstract class BaseBean{
//略
}
Interface IA{
public BaseBean doSomething();
}
下面我们继承这个BaseBean
Java代码
class ChildBean extends BaseBean{
}
接下来实现接口
Java代码
class IAImpl implements IA{
public BaseBean doSomething(){
return new ChildBean();
}
}
好了这是惯常的写法,但是同学们有没有发现一个问题当你返回得到BaseBean的时候其实你需要的是
java 泛型 实现接口他的实例而不是这个真实的Bean,而当你强转时又需要注意两点: NullPoint 和 类型是否对,这个很麻烦,因为调用者完全不知道调用什么.那么我们来描述我们需要什么:
我们需要IA的doSomething返回的是一个对象这个对象extends于BaseBean
那么接下来我们就用泛型接口吧:
Java代码
Interface IA<T extends BaseBean{
public T doSomething();
}
class IAImpl implements IA<ChildBean{
public ChildBean doSomething(){
return new ChildBean();
}
}
这样当你调用这个实现的时候就能明确地得到返回的对象类型,清楚明了,这就是泛型接口的使用.其实我们平时一直在用的 Iterable就是这玩意大家可以去看下. 回家准备读下java编程思想中的相关段落.
总结今天收获很大,这里要感谢下灵芝同学给我的帮助,是她告诉了我,我所想要的东西叫泛型接口,感谢...
下次等我把泛型都再重新回炉下,再来把泛型的其他东西讲来听听...
关于java 泛型 实现接口和泛型类,泛型接口,泛型方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
java 泛型 实现接口的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于泛型类,泛型接口,泛型方法、java 泛型 实现接口的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~