黑马程序员_日记53_泛型应用在自定义类的对象上

FPGA/IC 秋招笔试/面试题总结(续) FPGA/IC 秋招笔试/面试题总结(续)来啦… 文章目录二十七、状态机1. Moore/Mealy状态机2.一、二、三段式状态机 二十七、状态机 1. Moore/Mealy状态机 (1)Moore状态机: 输出只由当前状态决定,即次态=f(现态。输入),输出=f(现态) Moore型状态机的输出信号是直接由状态寄存器译码得到的。 Moore型状态机检测序列1101如下 Moore型状态机输出函数只由状态变量决定,想要输出Z=1,必须S4状态形成,即寄存器中的1101都打进去后才可以。输出Z=1会在 阅读详情

 ——- android培训、java培训、期待与您交流! ———-

三、引用数据类型的自定义复杂对象

2 先建立一个Person
3 再建立一个Student继承Person
4 ArrayList al = new ArrayList();
左边声明本集合是接受Person的,但是右边只传了Student,
同时在语法上下面如果调用add()方法添加了Person类的子类对象Worker也是可以的,
但是这就出现了安全问题!
因为在Student集合中竟然出现了Worker,这就产生了严重的安全问题!
所以:编译无法通过,左右两边类型不一致!
编译时候会给出这样的提示:
^
需要: ArrayList
找到: ArrayList
原因: 无法通过方法调用转换将实际参数ArrayList转换为ArrayList
1 个错误

四、泛型没有使用限定范围

import java.util.*;
class GenericDemo6
{
    public static void main(String[] args)
    {
        ArrayList<Person> al = new ArrayList<Person>();
        al.add(new Person("abc1"));
        al.add(new Person("abc2"));
        al.add(new Person("abc3"));
        //printColl(al);

        ArrayList<Student> al1 = new ArrayList<Student>();
        al1.add(new Student("abc--1"));
        al1.add(new Student("abc--2"));
        al1.add(new Student("abc--3"));
        printColl(al1); //ArrayList<Person> al = new ArrayList<Student>();错误:左右两边类型不一致,怎么解决呢?<? extends Person>
    }

    public static void printColl(ArrayList<Person> al)
    {
        Iterator<Person> it = al.iterator();

        while(it.hasNext())
        {
            System.out.println(it.next().getName());
        }
    }
}

class Person
{
    private String name;
    Person(String name)
    {
        this.name = name;
    }
    public String getName()
    {
        return name;
    }
}

class Student extends Person
{
    Student(String name)
    {
        super(name);
    }

}

如果想让左右两边不一致,同时还能通过编译,并且没有安全隐患,该怎么解决呢??
使用

五、使用了泛型限定上限

import java.util.*;
class GenericDemo6
{
    public static void main(String[] args)
    {
        ArrayList<Person> al = new ArrayList<Person>();
        al.add(new Person("abc1"));
        al.add(new Person("abc2"));
        al.add(new Person("abc3"));
        printColl(al);

        ArrayList<Student> al1 = new ArrayList<Student>();
        al1.add(new Student("abc--1"));
        al1.add(new Student("abc--2"));
        al1.add(new Student("abc--3"));
        printColl(al1); //ArrayList<? extends Person> al = new ArrayList<Student>();error左右两边类型不一致,怎么解决呢?<? extends Person>
    }

    public static void printColl(ArrayList<? extends Person> al)//能够接受Person和Person的子类对象
    {
        Iterator<? extends Person> it = al.iterator();

        while(it.hasNext())
        {
            System.out.println(it.next());
        }
    }
}

class Person
{
    private String name;
    Person(String name)
    {
        this.name = name;
    }
    public String getName()
    {
        return name;
    }

    //覆盖toString
    public String toString()
    {
        return name;
    }
}

class Student extends Person
{
    Student(String name)
    {
        super(name);
    }

}

小结:

Python爬虫实战——如何自动爬取百度搜索结果页面 本文介绍了如何使用Python爬虫抓取百度搜索结果页面的内容,包括如何构建搜索URL、获取页面HTML、解析内容、处理翻页以及存储数据等。通过该教程,您可以轻松实现批量抓取百度搜索结果,并为后续的数据分析和处理打下基础。希望本文能为您在爬虫开发、数据分析等领域提供帮助。如果您在实际应用过程中遇到问题,可以参考反爬虫应对策略,并结合实际需求进行调整。 阅读详情

相关推荐

浅谈MOS管的发热原因和解决办法

解读一下开关管发热原因,解决方案和开关损耗测试。

qq_45508321的博客 1万+

泛型使用在方法和类上(Java)

泛型使用在方法和类上Java泛型使用在方法上(使用较多)泛型在类上的使用 泛型使用在方法上(使用较多) 使用泛型方法,需要定义一个类型,一般使用大写字母表示,例如,T表示任何引用数据类型, 注意: 必须写在返回值之前, 代码: 调用: 结果: 同样其他的数组也可以,可以自己写写,就不在这再举列子,不可以传入八种基本类型的数组,但可以传入它们所对应的八种包装类的数组对象. 泛型在类上的使用 在类...

weixin_45311284的博客 2799

Ansys Maxwell磁场仿真入门:无线传能线圈自感与互感计算全流程

本文详细介绍了使用Ansys Maxwell进行无线充电线圈磁场仿真的全流程,包括模型建立、求解器设置、电感参数提取及优化策略。通过实战案例,帮助工程师掌握线圈自感与互感计算技巧,提升无线充电系统设计效率与精度。重点解析了Maxwell在磁场仿真中的关键应用,适用于电磁场仿真初学者和进阶用户。

weixin_29047545的博客 437

黑马程序员--【学习日记三】——java面向对象(一)

知识l对象封装构造函数this关键字静态 1)对象: 面向对象程序设计,简称OOP。OOP的思想从根本上讲,不必关心其功能的具体实现过程,只要对象能满足人们的要求即可。对象可以是外界提供,也可以是自己构造,根据实际工作需求而定。 面向对象思想使得复杂的问题简单化。 使用面向对象的前提是要清楚对象的三个特征: 对象的行为。对象有哪些方法可以使用,或者可以对对象进

u013587258的专栏 558

Labview调用C++ dll之字符串数组传递

做项目的时候碰到了一个需求,有一个复杂的运算,用labview实现非常的麻烦,但是如果用C++实现,就会灵活很多。尝试着采用Labview调用C++编写的动态链接库方式解决,兼顾Labview的便利和C++的灵活性。 运算好说,主要难点是Labview与C++之间的数据对应关系,因为我最后的结果是既有字符串又有数字,对于单纯的数字来说,直接通过调用数组的方式就能解决,这里主要记录一下字符串数组...

bgbgx的博客 6807

sap2000 api matlab,SAP2000_API入门指南.pdf

SAP2000_API入门指南北 京 金 土 木 软 件 技 术 有 限 公 司Beijing Civil King Software TechnologyCo., Ltd.SAP2000 API 入门指南余承飞 韦群跃 汤娣概述SAP2000 API 是从 SAP2000 V11 开始引进的,即应用软件编程接口。用户可以编写程序,通过API 随心所欲地调用 SAP2000...

weixin_42118423的博客 1941

黑马程序员_学习日记53_625三层项目(FTP相关操作、递归TreeView、三层结构)

1、通过WebClient操作ftp WebClient是对WebResponse和WebRequest的封装 //下载 WebClient wc = new WebClient(); //Credentials属性  获取或设置发送到主机并用于对请求进行身份验证的网络凭据 wc.Credentials = new NetworkCredential("yzk","1234"); w

Jack's Domain 627

30分钟用 Restful ABAP Programming(RAP)模型开发一个支持增删改查的 Fiori 应用

2016年时,Jerry曾经写过一系列关于SAP Fiori Smart Template(现在更名为Fiori Elements了)的博客,介绍了所谓的MDD开发方法论 - Metadata Driven Development,即通过开发维护了对应annotation(注解)的CDS view,结合SAP WebIDE,能够花费最少的编程代价,就能够在短时间内获得一个支持增删改查的Fiori应......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5951

黑马程序员-学习日记24(java高新技术 5 )

-------android培训、java培训、期待与您交流! ----------     创建动态类的实例对象及调用其方法  1.接口 InvocationHandler(java.lang.reflect)   1)InvocationHandler 是代理实例的调用处理程序 实现的接口。 每个代理实例都具有一个关联的   调用处理程序。对代理实例调用方法时,将对方法调

459

【工具插件类教学】Unity翻书效果插件Book-Page Curl Pro教程

特征: • 从左到右和从右到左翻页 • 与画布缩放器 配合使用 • 可配置的自动翻转脚本 • 支持向页面 添加 UI 元素 • 支持透明页面 • 适用于“世界空间”画布

纯技术流日常开发商业开发记录总结等 3672

农作物生长模型:数学建模与实战案例

在本篇博客中,我们介绍了农作物生长模型的基本原理,并结合Matlab代码和实战案例,演示了如何应用数学建模技术进行农作物生长模型的研究与应用。农作物生长模型在农业领域具有重要意义,希望本篇博客能帮助读者更好地理解农作物生长模型的原理和应用,并在实际农业生产中取得更好的效果。

YOLO 2734

黑马程序员_日记14_Java多线程(四)

——- android培训、java培训、期待与您交流! ———-同步函数的锁是this同步函数用的是哪一个锁呢?通过下列程序进行验证。使用两个线程来买票。 一个线程在同步代码块中。 一个线程在同步函数中。 都在执行买票动作。class Ticket implements Runnable { private int tick = 100; Object obj = new

itheima_1llt的专栏 450

面试问题总结——关于YOLO系列(三)

接着上篇的的YOLO系列面试问题总结,加油,冲! 三.YOLOv3 1.YOLOv3主干网络BackBone——Darknet-53网络结构(因为有53个卷积层) (原论文中Darknet53的尺寸是在图片分类训练集上训练的,所以输入的图像尺寸是256x256,而在YOLOv3中输入尺寸是416×416)   ①上图中,Top-1 Accuracy和Top-5 Accuracy是指什么呢?区别在哪呢?   我们知道ImageNet有大概1000个分类,而模型预测某张图片时,会给出1000个按概率从高.

boss-dog 1万+

csdn-爬虫 ip代理

1 .微信小程序开发官方文档 2 .优快云博文精选 微信小程序全方位解析 3 .一名Android开发者的微信小程序填坑之路(1) 4 .微信直播在小程序上使用 5 .Android 实现微信,QQ的程序前后台切换:back键切换后台;点击通知栏恢复前台。 6 .「微信小程序」有哪些冲击与机会? 7 .微信小程序简单教程 8 .微信小程序入门教程+案例demo 9 .目前为止最全

bihackers的专栏 635

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

黑马程序员_日记8_JavaSE阶段性习题练习及复习

——- android培训、java培训、期待与您交流! ———-JAVASE阶段性习题练习及复习这篇博客主要是把毕老师出的前四大练习题全部做了一遍,经我反复测试和修改后写得一些JAVASE基础总结。 练习一 已知学生成绩以100分为满分,共分5个等级:A,B,C,D,E。 90~100为等级A,80~89为等级B,70~79为等级C, 60~69为等级D,0~59为等级E。

itheima_1llt的专栏 3599

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

黑马程序员_日记27_JavaString类型的数字排序问题

——- android培训、java培训、期待与您交流! ———-输入一int型的数字字符串 用空格间隔,从小到大排序后,以字符串返回。 “12 0 99 -7 30 4 100 13” 要求对字符串中的数值进行排序。生成一个数值从小到大新字符串。“-7 0 4 12 13 30 99 100”分析: 1 用split方法把字符串切割成String[]类型的数组。 2 把String[]数组

itheima_1llt的专栏 2677

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

黑马程序员_日记25_Java两个字符串的最大相同子串

——- android培训、java培训、期待与您交流! ———-/* 获取两个字符串中最大相同子串。第一个动作:将短的那个串进行长度一次递减的子串打印。 "abcwerthelloyuiodef" "cvhellobnm"模拟一下: 第一趟: 最大子串:cvhellobnm ↑--------↑ 在长字符串中查找 abcwerthelloyuiodef ↑---

itheima_1llt的专栏 784

黑马程序员_日记26_Java字典序排序练习

——- android培训、java培训、期待与您交流! ———-对字符串中字符进行自然顺序排序。 例如,”vcz1bdAa+cs”–>abccdsvz 思路: 1 把字符串变成字符数组 2 对数组进行排序 3 找到字符数组中’a’第一次出现的位置找到 4 计算要转换的字符个数 5 把字符数组变成字符串import java.util.Arrays; class StringSortD

itheima_1llt的专栏 755

黑马程序员_日记33_Java迭代器基本使用

——- android培训、java培训、期待与您交流! ———-迭代器Iterator测试查阅API,得到迭代器的基本常识: 对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同: 迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection

itheima_1llt的专栏 747

黑马程序员_日记2--Java数组

——- android培训、java培训、期待与您交流! ———-数组复习总结一、数组的定义数组的概念所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序

itheima_1llt的专栏 716

黑马程序员_日记9_Java学习感言

——- android培训、java培训、期待与您交流! ———-学习感言原计划快速看一遍JAVASE视频复习一下,然后直接面试。但是从16号到今天,已经10天了,我才刚刚完成10天的学习。冷静下来,仔细想想还是方法有问题。前段时间听课都没有压力,也就没有经常动手练习,但是累积到做练习四的时候,才发现并不是很熟练,于是沉下心来花了2天的时间回头把所有的练习都不使用eclipse运行一遍,现在感觉基础

itheima_1llt的专栏 713

黑马程序员_日记21_JavaString常用方法

——- android培训、java培训、期待与您交流! ———-String类用来描述字符串,它提供了许多的方法来操作字符串。 那么,在String众多的方法中,常用的方法有哪些呢??1 获取1.1 字符串的长度int length(); 示例:String str = "abcdefg"; str.length();注意不是str.length;1.2 根据索引获取字符char c

itheima_1llt的专栏 662

黑马程序员_日记59_TreeMap自定义对象练习

——- android培训、java培训、期待与您交流! ———-TreeMap自定义对象存取练习需求:每一个学生都有对应的归属地。 学生Student,地址String。 学生属性:姓名,年龄。 注意:姓名和年龄相同的视为同一个学生。 保证学生的唯一性。 对学生对象的年龄进行升序排序,用Comparable实现; 对学生的姓名进行字典序排序,用Comparator实现。因为数据是以键值

itheima_1llt的专栏 626

黑马程序员_90_网络编程Socket

——- android培训、java培训、期待与您交流! ———-概述网络参考模型OSI(Open System Interconnection 开放系统互连)参考模型 TCP/IP 参考模型 图示如下 七层模型 1. 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化

itheima_1llt的专栏 611

黑马程序员_日记22_JavaStringTrim练习

——- android培训、java培训、期待与您交流! ———-1,模拟一个trim方法,去除字符串两端的空格。分析:1、明天功能的结果,去除字符串两端的空格。String 2、有没有未知参数??被改变的字符串String str思路: 1 当左边是空格时循环判断,直到不是空格结束,记录该脚标; 2 当右边是空格时循环判断,直到不是空格结束,记录该脚标; 3 以上条件,当

itheima_1llt的专栏 610

黑马程序员_日记16_Java多线程(六)

——- android培训、java培训、期待与您交流! ———-死锁一、基本概念死锁是什么呢? 两个线程分别持有一个资源, 并同时请求得到对方的资源。 在这种情况下产生的不正常情况就叫做死锁。死锁在什么情况下会发生呢? 死锁在同步嵌套同步的情况下会发生。 至少有2把锁,才会产生死锁。二、死锁实例1首先,以前面售票的例子展示一下死锁。class Ticket implements Runn

itheima_1llt的专栏 591
上一篇: 黑马程序员_日记52_泛型限定初级使用
下一篇: 黑马程序员_日记54_TreeSet使用比较器和泛型的初级结合
回到未来2020
博客等级 码龄12年 27粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值