当前位置: 首页 > news >正文

门户网站的传播特点做网站什么语言

门户网站的传播特点,做网站什么语言,科技公司简介,哪里有免费 建设网站的地址1、什么是泛型#xff1f; 泛型#xff08;Generics#xff09;是把类型参数化#xff0c;运用于类、接口、方法中#xff0c;在调用时传入具体的类型。 泛型就是参数化类型 适用于多种数据类型执行相同的代码泛型的类型在使用时指定泛型归根到底就是“模板” 优点…1、什么是泛型 泛型Generics是把类型参数化运用于类、接口、方法中在调用时传入具体的类型。 泛型就是参数化类型 适用于多种数据类型执行相同的代码泛型的类型在使用时指定泛型归根到底就是“模板” 优点使用泛型时在实际使用之前类型就已经确定了不需要强制类型转换。 操作的数据类型被指定为一个参数这种参数类型可以用在类、接口和方法中分别被称为泛型类、泛型接口、泛型方法。   2、泛型的使用场景 2.1 用于集合 /*** 运用于集合中*/ public class Demo01 {//不使用泛型直接存取数据public static void test01() {List list new ArrayList();list.add(001);list.add(100);Object o1 list.get(1);if(o1 instanceof Integer) {//如果不判断类型直接强转Integer则运行时可能直接抛出异常o1 (Integer)o1;}System.out.println(o1);}public static void test02() {ListInteger list new ArrayListInteger();//list.add(001); 放数据时进行安全检查001不是Integer类型编译不通过list.add(100);System.out.println(list.get(0));}public static void main(String[] args) {test01();test02();} } 2.2 自定义泛型 泛型字母 形式类型参数formal type parameters即泛型字母命名泛型字母可以随意指定尽量使用大写字母多个参数时在字母后加数字例T1T2常见字母T(Type)K V (Key Value)E(Element)泛型类 只能用在成员变量上只能使用引用类型 泛型接口 只能用在抽象方法上 泛型方法 返回值前加T自定义泛型类 /*** 自定义泛型类* param T*/ class StudentT {private T prop;public T getProp() {return prop;}public void setProp(T prop) {this.prop prop;}Overridepublic String toString() {return Student [prop prop ];} }public class Demo02 {public static void main(String[] args) {//Studentint s new Studentint(); 不能为基本类型会编译报错StudentInteger student new StudentInteger();student.setProp(18);//输出Student [prop18]System.out.println(student);} } 自定义泛型接口 /*** 自定义泛型接口* 接口中泛型字母只能使用在方法中不能使用在全局常量中* param T*/ public interface ComparatorT1, T2 {//public static T1 param; 静态类型不能引用非静态的参数会编译报错void compare(T1 t1);T2 compare();public abstract T1 compare2(T2 t2); }非泛型类里定义泛型方法 /*** 非泛型类里定义泛型方法*/ public class Demo03 {public staticT void test01(T t) {System.out.println(t);}public staticT extends List void test02(T t) {t.add(sdfs);System.out.println(t);}public static T extends Object void test03(T ...l) {for(T t:l) {System.out.println(t);}}public static void main(String[] args) {//泛型参数test01(01);//泛型的继承test02(new ArrayListInteger());//可变参数test03(new ArrayListInteger(), new ArrayListString());}} 泛型类的继承 abstract class FatherT1, T2 {T1 age;public abstract void makeFriend(T2 t); }/*** 父类泛型完全保留*/ class Child1T1, T2 extends FatherT1, T2 {Overridepublic void makeFriend(T2 t) {System.out.println(My attr: age T2t);System.out.println(I am getClass().getName(), lets be friend.);} }/*** 父类泛型部分保留*/ class Child2T1 extends FatherT1, Integer {Overridepublic void makeFriend(Integer t) {System.out.println(My attr: age T2t);System.out.println(I am getClass().getName(), lets be friend.);} }/*** 父类泛型不保留子类按需实现*/ class Child3 extends FatherInteger, String {Overridepublic void makeFriend(String t) {System.out.println(My attr: age T2t);System.out.println(I am getClass().getName(), lets be friend.);} }/*** 没有具体类型* 泛型擦除继承父类的子类没有指定类型默认为Object*/ SuppressWarnings(rawtypes) class Child4 extends Father {Overridepublic void makeFriend(Object t) {System.out.println(My attr: age T2t);System.out.println(I am getClass().getName(), lets be friend.);} }public class Demo03 {public static void main(String[] args) {new Child1().makeFriend(1);new Child2().makeFriend(1);new Child3().makeFriend(1);new Child4().makeFriend(1);} } /*** 类型擦除*/ public class Demo03 {public static void test01(StudentInteger student) {student.setProp(18);System.out.println(student);}public static void main(String[] args) {Student student new Student();//输出Student [prop18]test01(student);StudentString s2 new StudentString();//编译报错参数不匹配//test01(s2);} } 通配符 通配符Wildcards T、K、V、E 等泛型字母为有类型类型参数赋予具体的值未知类型 类型参数赋予不确定值任意类型只能用在声明类型、方法参数上不能用在定义泛型类上/*** 泛型的通配符类型不确定用于变量声明或者形参上面* 不能用在类上或者对象创建上*/ public class Demo03 {public staticT void test01(StudentT student) {//编译报错不能转换 StudentInteger 为 StudentT//student new StudentInteger();//student new StudentString();//student new StudentBigDecimal();System.out.println(student);}public static void test02(Student? student) {//?号代表类型参数不确定下面代码可以执行student new StudentInteger();student new StudentString();student new StudentBigDecimal();System.out.println(student);}public static void main(String[] args) {Student student new Student();//输出Student [propnull]test02(student);} } extends/super 上限extends 指定的类必须是继承某个类或者实现了某个接口不是implements即 ? extends List 下限super 即父类或本身 super List/*** extends:泛型的上限 一般用于限制操作 不能使用在添加数据上一般都是用于数据的读取* supper:泛型的上限 即父类或自身。一般用于下限操作*/ public class Demo03T extends Fruit {public static void test01() {Demo03Fruit t1 new Demo03Fruit();Demo03Apple t2 new Demo03Apple();//编译报错类型转换失败//Demo03Fruit t3 new Demo03Apple();}public static void test02(List? extends Fruit list) {//编译报错//list.add(new Fruit());//list.add(new Object());}public static void test03(List? super Apple list) {//可以编译通过list.add(new Apple());list.add(new RedApple());//编译报错//list.add(new Fruit());}} 泛型嵌套 /*** 泛型嵌套**/ public class Demo05 {public static void main(String[] args) {Student2String student new Student2String();student.setScore(优秀);System.out.println(student.getScore());//泛型嵌套SchoolStudent2String school new SchoolStudent2String();school.setStu(student);String s school.getStu().getScore(); //从外向里取System.out.println(s);// hashmap 使用了泛型的嵌套MapString, String map new HashMapString,String();map.put(a, 张三);map.put(b, 李四);SetEntryString, String set map.entrySet();for (EntryString, String entry : set) {System.out.println(entry.getKey():entry.getValue());}} }public class SchoolT {private T stu;public T getStu() {return stu;}public void setStu(T stu) {this.stu stu;}}public class Student2T {T score;public T getScore() {return score;}public void setScore(T score) {this.score score;} } 其他数组 import java.util.ArrayList; import java.util.List;/*** 泛型没有多态* 泛型没有数组* JDK1.7对泛型的简化* author Administrator**/ public class Demo06 {public static void main(String[] args) {Fruit fruit new Apple(); // 多态父类的引用指向子类的对象//ListFruit list new ArrayListApple(); //泛型没有多态 List? extends Fruit list new ArrayListApple();//泛型没有数组//FruitString[] fruits new FruitString[10];//ArrayList底层是一个Object[],它放数据的时候直接放取数据的时候强制类型转化为泛型类型/*public boolean add(E e) {ensureCapacityInternal(size 1); // Increments modCount!!elementData[size] e;return true;}*//*E elementData(int index) {return (E) elementData[index];}*///JDK1.7泛型的简化,1.6编译通不过ListFruit list2 new ArrayList();} } 参考 https://segmentfault.com/a/1190000014824002?utm_sourcetag-newest http://www.importnew.com/tag/%E6%B3%9B%E5%9E%8B
http://www.pierceye.com/news/727132/

相关文章:

  • 做a漫画在线观看网站网站建设这个工作怎么样
  • 商城网站建设缺点培训机构退费
  • 大型网站需要什么样的团队建购物网站 教程
  • 商业设计网站推荐网站注册免费qq
  • 做微信首图的网站阿里网站建设App开发
  • .网站链接策略网页制作手机版
  • 河南网站优化要多少钱网站技术有哪些
  • 域名还在备案可以做网站吗高端设计公司名字大全
  • 简洁的门户网站网站开发文案
  • 信息网站 模板中国建设银行手机银行下载官方网站
  • 番禺网站开发设计小程序后端数据库搭建
  • 丰都集团网站建设云南网站开发公司
  • 赶集网的二级域名网站怎么做海南网站建设报价方案
  • dede做手机网站网站开发小作业
  • 网站建设推广ppt室内设计知名网站
  • asp 网站源码网站搭建好了怎么上到服务器
  • 网站有什么到期wordpress怎么编辑保存
  • 服务器添加网站300500启迪设计
  • 上海市建设安全协会网站移动端页面
  • 手机做网站公司成都住房和城乡建设厅官网
  • 锋创科技园网站建设网站开发ide php
  • 山东做网站的公司有哪些电脑怎么制作视频短片
  • 书画网站 建站维护网站成本
  • 什么事网站开发网站服务器租用报价
  • 做黏土的网站青岛网站建设微动力
  • 建网站权威公司广告发布平台
  • 自助游网站开发分析报告总结怎么注册公司微信公众号
  • 网站开发公司业务员培训黄聪wordpress
  • 网站规划与建设ppt模板下载响应式网站模板费用
  • 江苏商城网站建设服务网站建设优化石家庄