泛型思考

import java.util.ArrayList;
import java.util.List;

public class Fangxin {
    
    public static void main(String [] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        new Product().prt(list);
    }
    
}

class Product {
    public void prt(List<String> l) {
        System.out.println(l);
    }
}

=====================================

编译器:不通过,说无法将Product中的prt(java.util.List<java.lang.String>)应用于(java.util.List<java.lang.Integer>)

但改变代码为这样后

import java.util.ArrayList;
import java.util.List;
public class Fangxin {
    
    public static void main(String [] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        System.out.println();
        new Product().prt(list);
    }
    
}

class Product <T> {
    public void prt(List<String> l) {
        System.out.println(l);
    }
}

===========================================
编译器:使用了未经检查或不安全的操作。
但能编译通过并运行显示
[1, 2]

 

原因是这样的:(也要感谢kezhu2003(炎阳天)的帮助)

generic class Product<T>在JVM运行时是不存在的,Product叫原始类型,原始类型不是类型安全的.这个在编译时是检测不出的,运行时才报错.
而当一个generic class使用原始类型时,其方法里的参数也就相应的使用了原始形态,如此列的java.util.List而不是java.util.List<String>
固new Product().prt(lt)时可以运行.

但product非generic class 则 prt(List<String> l)在jvm编译时会对l进行类型检查,

Lsit<String> l 是类型安全的,因为其用了generic collection

所以会报错,编译不通过。

 

所以建议大家多用泛型,这样可以避免很多麻烦

注:本文转自 http://www.360doc.com/content/06/0830/19/11192_194556.shtml


MATLAB主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性内容概要:本文主要介绍了一种在MATLAB环境下实现的主动噪声和振动控制算法,该算法针对较大的次级路径变化具有较强的鲁棒性。文中详细阐述了算法的设计原理与实现方法,重点解决了传统控制系统中因次级路径动态变化导致性能下降的问题。通过引入自适应机制和鲁棒控制策略,提升了系统在复杂环境下的稳定性和控制精度,适用于需要高精度噪声与振动抑制的实际工程场景。此外,文档还列举了多个MATLAB仿真实例及相关科研技术服务内容,涵盖信号处理、智能优化、机器学习等多个交叉领域。; 适合人群:具备一定MATLAB编程基础和控制系统理论知识的科研人员及工程技术人员,尤其适合从事噪声与振动控制、信号处理、自动化等相关领域的研究生和工程师。; 使用场景及目标:①应用于汽车、航空航天、精密仪器等对噪声和振动敏感的工业领域;②用于提升现有主动控制系统对参数变化的适应能力;③为相关科研项目提供算法验证与仿真平台支持; 阅读建议:建议读者结合提供的MATLAB代码进行仿真实验,深入理解算法在不同次级路径条件下的响应特性,并可通过调整控制参数进一步探究其鲁棒性边界。同时可参考文档中列出的相关技术案例拓展应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值