范型的一个问题

问题描述

如下,我定义了一个方法:public static List<?> convert(Map dc, Class<?> classType){List<?> l = new ArrayList<Class<?>>();try {Object co = classType.newInstance();l.add(co);} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}return l;}我要实现的目的是,将map里的key value转成一个有get,set方法的bean, 我这里没有列出具体的实现,问题是在转型上,怎么能够动态定义那个co的类型就是classType并可以加到l中去呢? 现在l.add(co)是不能编译通过的。

解决方案

可以改成:public static <T> List<T> convert(Map dc, Class<T> classType){ List<T> l = new ArrayList<T>(); try { T co = classType.newInstance(); l.add(co); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return l; } 不过你这里有必要用到泛型吗?
解决方案二:
这样行不:if(co instanceof classType){ l.add(co);}

时间: 2024-07-31 01:33:45

范型的一个问题的相关文章

Java网络协议 TCP和客户端/服务器范型

服务器|客户端|网络 在网络编程中(同样在其它形式的通讯中,例如数据库编程),使用套接字的应用程序也被分为两类--客户端程序和服务器程序.你可能对"客户端/服务器编程"术语比较熟悉,尽管这个术语的准确意思你不一定清楚.下面的范例就是讨论这个主题. 1. 客户端/服务器范型 客户端/服务器范型把软件分为两类--客户端程序和服务器程序.客户端软件启动一个连接并发送请求,而服务器软件监听连接并处理请求.在UDP编程环境中,没有建立实际的连接,并且UDP应用程序可以在相同的套接字上建立并接收请

.NET 2.0 基础类库中的范型——范型集合

集合 范型集合毫无疑问,范型最典型的应用莫过于范型集合了.在 .NET 2.0 中提供了已有集合类和接口的范型版本,它们位于 System.Collections.Generic 命名空间中. .NET 2.0 中新的范型集合类并不是简单的在已有非范型集合类的设计上多加了个范型参数 T 而已.新的范型集合类的设计充分吸收了已有设计中的合理之处并摒弃了一些不甚合理之处,同时引入了新的针对范型的设计.所以,新的范型类和接口的设计应该更加合理和有效,不过 .NET 程序员则需要花些时间学习新的设计并了

关于反射获得类 然后创建一个范型List&amp;amp;lt;T&amp;amp;gt;

问题描述 小弟不才,对.NET的发射和范型没有弄的很明白,现在遇到这么个问题:我通过了类名反射创建了类Assemblyassembly1=Assembly.Load("Ship.Model");Typet1=assembly1.GetType("Agent");objectobj1=Activator.CreateInstance(t1);现在需要创建一个List<T>T是这个obj1的类,请问怎么创建呢?Typetype=obj1.GetType();

Android 一个类实现的 Json 解析 - 范型的有效利用,使其得以简化

Android 一个类实现的 Json 解析 - 范型的有效利用,使其得以简化 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 这是在一家工作过四个月的比利时公司时写的. 当时忙于户口调动的事儿

Java利用反射来获取一个方法的 范型化参数 Vector&amp;lt;Integer&amp;gt;的类型

假设有如下类 class   A {      public  void   show(Vector<Integer> v)  {} }   在我们不知道Vector中数据的类型的时候 这时候我们只知道这个方法的名字  和参数的个数 ,我们来获取 范型化的实际类型 .  我们不可能通过 Vector对应的Class类来反射出  泛型集合中的类型  ,但是 我们却可以通过 这个方法所对应的Method类来实现 . 具体如下  : import java.lang.reflect.Method;

.NET 2.0 基础类库中的范型——其他范型类

其他范型类.NET 2.0 基础类库对范型的应用当然并不仅限于范型集合和 Functional Programming.下面所列的范型类也都有其明确的设计目的和用途. Array在.NET 2.0中,Array 类扩充了对范型编程的支持.当然,Array类本身并不是范型类(出于兼容的考虑),而是提供了一系列支持范型的方法.除了前面提到的 Functional Programming 的支持外,Array 类还对以前很多基于 object 的方法提供了对应的范型版本,这样对值类型可以提高查找和排序

.Net Framework 2.0范型的反射使用

在.Net Framework 2.0中引入了范型(Generic)的概念,这可以说是一个重大的改进它的好处我在这里也不用多说,到网上可以找到非常多的说明. 我在这里要和大家说的是怎么通过反射使用范型的技术. 一:首先看看范型的FullName List<string> list = new List<string>(); System.Console.WriteLine(list.GetType().FullName);System.Console.WriteLine(); 这个

基于范型的java函数式编程(一)

编程|函数 注:在您阅读本篇的时候,希望你对Java Generic(范型)能够有所了解和明白. 记:周末在给javaparty讲FP中,很多人似乎对fp并不关心,也认为java中fp的作用不大.其实这是个很大的观念错误,范型的发展,对java的函数式编程支持很大,对Functor的影响也非常大.Functor在算法.逻辑.条件计算.规则引擎等等方面,都会有很大的作为,这个影响可就会深远的多了.-- 估且以此篇的开端,唤醒java开发者对FP in Java的重新认识. 周六给javaparty

.NET 2.0 基础类库中的范型——Functional Programming

Functional ProgrammingFunctional Programming 不是一个新鲜的概念了,例如 C++ 虽然不是一门 Functional Programming 语言,但对它也有变通的支持--通过使用模板,函数对象(Function Objects)和运算符重载等手段,STL.Boost 等库提供了巧妙无比的.高性能的算法和功能.长久以来似乎 C++ 能实现的这些特性对于诸如 Java 和 C# 这些强调类型安全的面向对象的编程语言和框架来说是绝缘的.现在,在 CLR 范