泛型方法+反射,解决静态可变类参数问题
来源:互联网 发布:游戏源码怎么看 编辑:程序博客网 时间:2024/04/28 05:16
问题描述:略
问题分析:略
具体代码如下:
Base是Lesson和Result的基类
public class Base {public static Base parse(String str) {return new Base();}}
Lesson
public class Lesson extends Base{public static Lesson parse(String str){return new Lesson();}}
Result
public class Result extends Base {public static Result parse(String str) {return new Result();}}
BaseList是LessonList和ResultList的基类
public class BaseList { public static <BaseListT, BaseT> BaseListT parse(String str, Class<BaseListT> listClass, Class<BaseT> itemClass) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException { BaseListT baseList = (BaseListT) listClass.newInstance(); List<BaseT> list = new ArrayList<BaseT>(); Method method = itemClass.getMethod("parse", new Class[] { String.class }); for (int i = 0; i < 10; i++) { BaseT base = (BaseT) method.invoke(itemClass, str); System.out.println(base.getClass().getName()); list.add(base); } System.out.println(baseList.getClass().getName()); return baseList; }}
LessonList
public class LessonList extends BaseList {public static LessonList parse(String str) throws SecurityException,IllegalArgumentException, NoSuchMethodException,IllegalAccessException, InvocationTargetException, InstantiationException {return (LessonList) BaseList.parse(str, LessonList.class,Lesson.class);}}
ResultList
public class ResultList extends BaseList {public static ResultList parse(String str) throws SecurityException,IllegalArgumentException, NoSuchMethodException,IllegalAccessException, InvocationTargetException, InstantiationException {return (ResultList) BaseList.parse(str, ResultList.class,Result.class);}}Test类测试类
public class Test {public static void main(String args[]) throws SecurityException,IllegalArgumentException, NoSuchMethodException,IllegalAccessException, InvocationTargetException,InstantiationException {LessonList.parse("dfd");ResultList.parse("dfd");}}
- 泛型方法+反射,解决静态可变类参数问题
- 反射:反射调用静态方法和数组参数问题
- 泛型方法和可变参数方法
- 黑马程序员—反射调用main方法的问题总结(涉及可变参数)
- 可变参数与泛型方法
- 反射之可变参数
- 可变参数、反射
- 可变参数静态导入
- 可变参数,静态导入
- PHP通过反射机制调用可变参数方法
- 黑马程序员—反射调用main方法的问题总结(涉及可变参数)(反射参数是一个数组的函数要小心)
- 方法参数 ,可变参数。
- 增强for循环、静态导入、可变参数、asList()方法
- 15.4.2 可变参数与泛型方法
- 黑马程序员_Java高新技术(静态导入、可变参数、增强for循环、自动拆装箱、枚举、反射)
- 静态导入和可变参数
- 泛型、可变参数、静态导入
- 静态导入和可变参数
- Struts1和Spring整合的步骤
- 程序员面试题精选100题(12)-从上往下遍历二元树
- 读《算法导论》我来C语言实现(3)——堆排序和优先级队列
- POJ 3114 Countries in War
- 自己动手,打造自己的硬件驱动-----成功安装Mac OS X Leopard 10.6.3
- 泛型方法+反射,解决静态可变类参数问题
- 【算法导论】22.1 图的转置
- 网上SQL问题连载4
- Android开发 权限大全,经常写好的功能为啥没运行?可能就是权限没有设定了!如下:
- 网上SQL问题连载5
- gtest
- 85 wpf sl操作.TXT文件
- 网上SQL问题连载6
- 网上SQL问题连载7