Java——容器(泛型)

【泛型】

 起因:JDK1.4之前类型不明确
 <1>装入集合的类型都被当做Object对待,从而失去自己的实际类型。
 <2>从集合中取出时往往需要转型,效率低,且很容易出错。
 
 解决办法:
 <1>在定义集合的时候同时定义集合中对象的类型
 ----实例程序:
 List<String>  c = new ArrayList<String>();
 //原本传入的强制转换为Object类型,这里不需要了,直接限定为String类型
 c.add("aa");
 c.add("bb");
 c.add("cc");
 for(int i=0;i<c.size();i++){
      String c = c.get(i);
      System.out.println(c);
 }
 好处:增强程序的可读性和稳定性
【普通泛型】
 package com.company.section1;

public class Client {
     //工资低于2500元的上斑族并且站立的乘客车票打8折
     public static <T extends Staff & Passenger> void discount(T t){
          if(t.getSalary()<2500 && t.isStanding()){
               System.out.println("恭喜你!您的车票打八折!");
          }
     }
   //这里使用泛型编程,因为传入的参数有两种类型:int,boolean,这样可以实现不同数据类型的操作。

     public static void main(String[] args) {
          discount(new Me());
     }
}

//职员
interface Staff{
     //工资
     public int getSalary();
}

//乘客
interface Passenger{
     //是否是站立状态
     public boolean isStanding();
}

class Me implements Staff,Passenger{
     public boolean isStanding(){
          return true;
     }
     public int getSalary() {
          return 2000;         
     }    
}
 
 
 
 
 

转载于:https://www.cnblogs.com/yedushusheng/p/4354543.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

quartz mysql 初始化_quartz scheduler 从数据库初始化

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

mysql group by 慢_mysql“group by”查询非常慢

我在一个有大约100k记录的表中有这个查询,它运行得很慢(3-4s),当我取出组时它更快(少于0.5s).我很想知道如何解决这个问题&#xff1a;SELECT msg.id,msg.thread_id,msg.senderid,msg.recipientid,from_user.username AS from_name,to_user.username AS to_nameFROM msgtable A…

拦截QT关闭窗口的CloseEvent

QDialog类下有一个虚函数 void QDialog::closeEvent ( QCloseEvent * e ) [virtual protected] 通过实现closeEvent函数&#xff0c;就可以以对关闭窗口消息进行拦截&#xff0c;比如程序还没有完成工作时&#xff0c;可以弹出警告窗口&#xff0c;即使用户确认退出操作…

mysql8.0本机登录要1秒_Mysql8.0的登录大坑……(忘记登录密码也可以这么搞)

关于安装和使用就不说了&#xff0c;属于基本操作了&#xff1b;我来重点记录一下关于使用前&#xff0c;使用navicat登录的时候报错&#xff0c;1130和2059查看安装后随机生成的密码&#xff1a; grep temporary password /var/log/mysqld.log原因&#xff1a;mysql8的密码验证…

Gmail邮箱添加域名解析

主机记录 MX 服务器地址 优先级 MX ASPMX.L.GOOGLE.COM. 10 MX ALT1.ASPMX.L.GOOGLE.COM. 20 MX ALT2.ASPMX.L.GOOGLE.COM. 20 MX ASPMX2.GOOGLEMAIL.COM. 30 MX ASPMX3.GOOGLEMAIL.COM. 30 MX ASPMX4.GOOGLEMAIL.COM. 30 MX ASPMX5.GOOGLEMAIL.COM. 3…

tidb vs mysql_一个长耗时SQL在TiDB和Mysql上的耗时测试

之前看到的TiDB和MySql的性能对比都是大量短耗时请求下的压测&#xff0c;单机情况下TiDB和MySql的确有些差距&#xff0c;不过笔者最近碰到的场景更多是sql要扫描的行数不小的情况下单sql比较耗时的问题&#xff0c;所以自己做了个简单测试这类型sql的耗时。TiDB单机环境部署g…

Oracle存储过程(转)

存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体。 行3: BEGIN关键词表明…

win10 python 调用模块_python常识系列14--gt;python通过jpype模块调用jar包

前言能坚持一件事&#xff0c;本身就是一种很了不起的才华。一、jpype模块是什么&#xff1f;能够让 python 代码方便地调用 Java 代码的工具二、jpype模块安装安装和其它模块没区别&#xff0c;但是注意模块名 是 jpype1 &#xff0c;后面有个1pip install jpype1三、jpype模块…

js 定时器

Document自带的方法&#xff1a; 循环执行&#xff1a;var timeid window.setInterval&#xff08;“方法名或方法”&#xff0c;“延时”&#xff09;;window.clearInterval(timeid); 定时执行&#xff1a;var tmid window.setTimeout(“方法名或方法”, “延时”);window.c…

mysql 载入主体时出错_mysql遇到load data导入文件数据出现1290错误的解决方案

错误出现情景在cmd中使用mysql命令&#xff0c;学生信息表添加数据。使用load data方式简单批量导入数据。准备好文本数据&#xff1a; xueshengxinxi.txt 文件 数据之间以tab键进行分割执行 “load data infile 文本数据路径 into table tab_load_data” 弹出错误。#load d…

JavaScript快速入门(四)——JavaScript函数

函数声明 之前说的三种函数声明中&#xff08;参见JavaScript快速入门&#xff08;二&#xff09;——JavaScript变量&#xff09;&#xff0c;使用Function构造函数的声明方法比较少见&#xff0c;我们暂时不提。function func() { }和var func function() { }除了在声明提升…

mysql 5.6 ibdata1_mysql 里的 ibdata1 文件不断的增长?

我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。当监控服务器发送一个关于 MySQL 服务器存储的报警时&#xff0c;恐慌就开始了 —— 就是说磁盘快要满了。一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 inno…

HashMap解读

hashcode()方法和equals()方法。使用这两个方法&#xff0c;一个对象能够存储或从一个Hashtable&#xff0c;HashMap&#xff0c;HashSet 被检索。 hashcode(): This method is used to get unique integer for given object. This integer is used to find bucket when storin…

mysql查询两个小时前的数据_ORACEL数据库获取两个时间之前的小时数

一、获取两个时间之前的小时数select ceil((To_date(2008-05-01 02:00:00 , yyyy-mm-dd hh24-mi-ss) - To_date(2008-04-30 23:59:59 , yyyy-mm-dd hh24-mi-ss)) * 24 ) 在厂小时数 FROM SCM_GDHJLD2二、截取字符串select substr(DIAODAOJIAOWANSHIJIAN,1,18) from SCM_GDHJLD2…

windows下git bash乱码问题

1,/etc/gitconfig&#xff1a; [gui]encoding utf-8 #代码库统一用urf-8,在git gui中可以正常显示中文 [i18n]commitencoding GB2312 #log编码&#xff0c;window下默认gb2312,声明后发到服务器才不会乱码 [svn]pathnameencoding GB2312 #支持中文路径 2,/etc/git-completio…

redmine两个mysql_Redmine3.4.2安装记(Win10+MySql)

一、准备工具二、安装安装railsinstaller-3.3.0.exe&#xff0c;解压redmine-3.4.2.zip到Sites目录下(默认在系统盘C:\下)创建空数据库和用于访问redmine数据库的用户MySql5.7.18CREATE DATABASE redmine CHARACTER SET utf8;CREATE USER redminelocalhost IDENTIFIED BY redmi…

python删除文件夹中的jpg_Python简单删除目录下文件以及文件夹的方法

本文实例讲述了python简单删除目录下文件以及文件夹的方法。分享给大家供大家参考。具体如下&#xff1a; #!/usr/bin/env pythonimport osimport shutilfilelist[]rootdir"/home/zoer/aaa"filelistos.listdir(rootdir)for f in filelist:filepath os.path.join( ro…

关于生活

最近的实习生活&#xff0c;以及遇到的几个小伙伴让我真正意识到了“生活”。在此记录一下。以后我会每周至少一篇博文&#xff0c;记载这周所学&#xff0c;所思。 转载于:https://www.cnblogs.com/istudy2012/p/4376649.html

python去重且顺序不变_Python实现嵌套列表去重方法示例

发现问题python嵌套列表大家应该都不陌生&#xff0c;但最近遇到了一个问题&#xff0c;这是工作中遇到的一个坑&#xff0c;首先看一下问题raw_list [["百度", "CPY"], ["京东", "CPY"], ["黄轩", "PN"], [&quo…

【原创】Kakfa utils源代码分析(一)

Kafka.utils&#xff0c;顾名思义&#xff0c;就是一个工具套件包&#xff0c;里面的类封装了很多常见的功能实现——说到这里&#xff0c;笔者有一个感触&#xff1a;当初为了阅读Kafka源代码而学习了Scala语言&#xff0c;本以为Kafka的实现会用到很多函数编程(Functional Pr…