java se-使用泛型打印输出任意类型的数组,为什么调用时有错误?

问题描述

使用泛型打印输出任意类型的数组,为什么调用时有错误?
import java.util.Arrays;

public class FanXing {
public static void printMatrix(T[][] matrix){
for(int i=0;i<matrix.length;i++){
System.out.println(Arrays.toString(matrix[i]));
}
}
public static void main(String[] args) {
double[][] doubleMatrix= new double[][]{{1.11.2}{2.12.2}};
printMatrix(doubleMatrix);
}
}
该如何实现?

解决方案

目前在Java里,数据类型分两种,primitive type和Object,范型现在现在还无法支持primitive数组,目前如果你想使用范型在primitive数组上,你唯一的选择是autobox。像下面这样做(顺便说一句JDK 10我们即将支持primitive的范型)

public static void printMatrix(T[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
System.out.println(Arrays.toString(matrix[i]));
}
}

public static void main(String[] args) {    Double[][] doubleMatrix = new Double[][]{{1.1 1.2} {2.1 2.2}};    printMatrix(doubleMatrix);}
时间: 2024-08-09 02:30:09

java se-使用泛型打印输出任意类型的数组,为什么调用时有错误?的相关文章

Java SE 6之脚本引擎 让程序如虎添翼

现在Java SE 5已经发布,在明年Java SE 6也将发布.Java SE 6较Java SE5有了很大的改进,它的功能更强,而且是专为Vista所设计,这就意味着Java SE 6将是Vista上的最佳选择.而Java SE 6所提供的最众多的新功能必将成为它的最大卖点. Java SE 6最引人注目的新功能之一就是内嵌了脚本支持.在默认情况下,Java SE 6只支持JavaScript,但这并不以为着Java SE 6只能支持JavaScript.在Java SE 6中提供了一些接口

java 接口 接口实现-接口,泛型,包装类型

问题描述 接口,泛型,包装类型 接口名有什么要求?泛型有什么作用?包装类型具体用在哪呢?求大神讲解. 解决方案 接口名有的公司要求加i,有的不要求,命名基本上都 是大写开头+名词组成 泛型就是不指定类型,而是等运行时来指定.这样可以减少代码量,有利于代码维护,提高整个程序的健状性.特别是在反射中更是常用到,而且还可以指定类型的范围. 包装类型很多时候都 是自动调用的.拆包和装包的过程java中大部分时候都有帮你搞定.具体用在哪?这个得看你自己怎么来定义数据.怎么来传递数据. 一般情况下,数据库对

java 泛型 类型擦除-Java 核心技术中泛型的使用

问题描述 Java 核心技术中泛型的使用 在看Java核心技术的过程中有个问题不明白,求各位大神指导. 书中写到: 不能构造一个泛型数组: public static T[] minmax(T[] a) { T[] mm = new T(2); ... } 书中的解释是类型擦除会让这个方法永远构造Object[2]数组. 什么叫永远构造Object[2]数组?是死循环?还是说构造的是Object[2]数组而不是T[2]数组 解决方案 说构造的是Object[2]数组而不是T[2]数组

C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法_C#教程

在工作中,如果需要跟XML打交道,难免会遇到需要把一个类型集合转换成XML格式的情况.之前的方法比较笨拙,需要给不同的类型,各自写一个转换的函数.但是后来接触反射后,就知道可以利用反射去读取一个类型的所有成员,也就意味着可以替不同的类型,创建更通用的方法.这个例子是这样做的:利用反射,读取一个类型的所有属性,然后再把属性转换成XML元素的属性或者子元素.下面注释比较完整,就话不多说了,有需要看代码吧! using System; using System.Collections.Generic;

C#中把任意类型的泛型集合转换成SQLXML数据格式的实例_C#教程

话不多说,跟着小编一起来看下吧 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlTypes; using System.Data; using System.Reflection; using System.IO; using System.Xml; namespace CollectionToXml { class Program

java基础之泛型

泛型 术语 "?"通配符 通配符的扩展 自定义泛型方法 "擦除"实例 类型参数的类型推断 自定义泛型类 泛型方法和泛型类的比较 泛型和反射 通过反射获得泛型的实际类型参数 本文对泛型的基本知识进行较为全面的总结,并附上简短的代码实例,加深记忆. 泛型 将集合中的元素限定为一个特定的类型. 术语 ArrayList<E> -- 泛型类型 ArrayList -- 原始类型 E -- 类型参数 <> -- 读作"typeof"

详解Java中使用泛型实现快速排序算法的方法_java

快速排序算法概念快速排序一般基于递归实现.其思路是这样的: 1.选定一个合适的值(理想情况中值最好,但实现中一般使用数组第一个值),称为"枢轴"(pivot). 2.基于这个值,将数组分为两部分,较小的分在左边,较大的分在右边. 3.可以肯定,如此一轮下来,这个枢轴的位置一定在最终位置上. 4.对两个子数组分别重复上述过程,直到每个数组只有一个元素. 5.排序完成. 基本实现方式: public static void quickSort(int[] arr){ qsort(arr,

Java SE 6中的AWT模态增强功能

一. 引言 模态一直是我最喜欢的话题之一,至少因为一直存在大量的感兴趣的客户的有关于这方面内容的回馈信息.作为一个Java SE测试工程师,这正是驱动我工作的动力-它使我一直处于忙碌之中,而且还为我的工作带来快乐.另一方面,这也说明了模态是客户端最广为使用的特征之一,不管是使用Swing还是使用AWT进行开发. 在Java SE 6(代码名为Mustang)中,我的工作变得更有意思--在模态方面进行大量的改进.这些改进将为应用程序开发者提供更大的灵活性--在设计可能用到模态对话框行为的程序的过程

Java SE 6 新特性: HTTP 增强

2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Mustang 在性能方面有了不错的提升.与 Tiger 在 API 库方面的大幅度加强相比,虽然 Mustang 在 API 库方面的新特性显得不太多,但是也提供了许多实用和方便的功能:在脚本,WebService,XML,编译器 API,数据库,JMX,网络和 Instrumentation 方面都有不错