java 泛型-关于Java泛型推断,希望大牛不吝赐教

问题描述

关于Java泛型推断,希望大牛不吝赐教

请教大牛一个问题,希望不吝赐教,关于泛型的推断:当某个类型变量在整个参数列表中的所有参数和返回值中的多处被应用了,如果调用方法时这多处的实际应用类型对应到了不同的类型,且没有使用返回值,这时候取多个参数中的最大交集类型
例:下面语句实际对应的类型就是Number了,编译没问题,只是运行时出问题。
public static void test(T[] array, T b) {
for (int i = 0; i < array.length; i++){
array[i] = b;
}
}
调用:test(new Integer[3],new Float(1));
既然推断出来T是Number了,为什么还会出现问题了?

解决方案

错了两地方首先,就算没返回值也应在void前声名.第二一个泛型能接收两个不同类型吗?所以调用时应为test(new Integer[] ,1)

解决方案二:

new Integer[3],new Float(1),用了T,应该类型都一致。
或者定义时,用T,T

解决方案三:

泛型不意味着类型转换,传入参数test(new Integer[3],new Float(1));,第一个参数还是Integer,第二个参数还是Float,不会因为T的变化而导致传入参数的类型变化

时间: 2024-11-02 17:13:57

java 泛型-关于Java泛型推断,希望大牛不吝赐教的相关文章

泛型-对于Java反射的安全性的一些疑问

问题描述 对于Java反射的安全性的一些疑问 最近在看深入理解JVM,随手写了一点代码,有个问题不太理解. 代码如下: public static void main(String[] args) throws Exception { HashMap<Integer, String> map = new HashMap<Integer, String>(); Method put = HashMap.class.getMethod("put", Object.c

关于java的匿名内部类和泛型

问题描述 关于java的匿名内部类和泛型 public class Counter { private static ThreadLocal<Integer> counterContext = new ThreadLocal<Integer>(){ protected synchronized Integer initialValue(){ return 10; } }; } 请教下上面这个类当中的这个匿名内部类起了什么作用,这个return 的10是传给了谁了呢?另外关于Thre

java运算符+=引出的问题,希望搞明白

问题描述 java运算符+=引出的问题,希望搞明白 short s = 3; s = s + 5; s += 5; 运算结果是 s = s + 5; 这句话编译错误,因为 s+5后,数值类型强制转换成了int型, 再赋值给一个short变量是,会丢失精度,出现编译错误 但是s += 5: 这个运算过程是怎样的,原理是什么,为什么这个就可以编辑通过呢? 解决方案 隐式类型转换可以从小到大自动转,即byte->short->int->long 如果反过来会丢失精度,必须进行显示类型转换 s=

java 树形表的读取,望大牛解答怎么实现

问题描述 java 树形表的读取,望大牛解答怎么实现 实体结构 @Table(name = "ent_check", schema = "") public class EntCheckEntity extends IdEntity implements java.io.Serializable { /**父级检查事项*/ private EntCheckEntity PCheck; /**检查事项*/ private java.lang.String checkN

java控制流程的问题,希望大家帮帮我

问题描述 java控制流程的问题,希望大家帮帮我 求Sn=a+aa+aaa--+aaaa(n个a)?a是1-9的随机数,n是5-10的随机数,,,用Java控制执行流程怎么实现 解决方案 随机就用math.random()随机出数来 好像是double类型的吧 我忘了 搞出随机数什么都好说

革命性的Java 8:Java回来了

JavaOne 2013已于近日在旧金山举行.9月22日,来自Oracle员工Peter Utzschneider.Nandini Ramani和Cameron Purdy的战略主题演讲拉开了此次庆典的序幕,活动持续到9月26日. 这是第十八次JavaOne大会,Java社区并没有显出放缓的迹象.Utzschneider告诉观众,Java仍然是世 界第一的开发平台,并且Java用户组的数量以每年10%的速度增长. Java的未来 Ramani探讨了Java的现状以及Java如何有若干不同的SDK

java 泛型接口实现-java 泛型接口add 拼写出errors 无法进行添加操作

问题描述 java 泛型接口add 拼写出errors 无法进行添加操作 正在学习泛型接口 在底层代码中 insert into web_student_school_name(errors,name)values(?,?) [{}, 四川大学] 拼写出errors 无法进行数据库添加操作 java.sql.SQLException: Unknown column 'errors' in 'field list' Query: insert into web_student_school_nam

filereader-java FileReader使用的时候不能正确的显示中文字符,希望大牛帮忙看看

问题描述 java FileReader使用的时候不能正确的显示中文字符,希望大牛帮忙看看 下面是我的源代码,我用了下面几种方式进行编辑,运行的结果都有乱码,我真是想不明白了,请大牛帮我看看. 第一种方式编译 E:java8>javac -encoding utf-8 TestFileReader.java 第二种方式编译 E:java8>javac -encoding gbk TestFileReader.java 第三种方式编译 E:java8>javac -encoding gb2

Java 并发工具包 java.util.concurrent 用户指南

译序 本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新:http://tutorials.jenkov.com/java-util-concurrent/index.html. 本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友可以去 Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf[带书签] 进行下载. 1. java.util.concurrent - Java 并发工具包 Java 5 添加了一个新的包到 Java 平