java中的泛型与反射
在java开发中,大多数情况是多人开发,那么如何在没有API的情况下,快速的理解到别人开发的一些类的详细信息呢?
比如函数名,类名,返回参数等等
我们可以定义一个反射机制的类,通过此类来打印此你想要操作的类的信息:
反射机制类的定义:(我这里只定义了部分信息的打印)
package forward.shop; import java.lang.reflect.Method;
import java.lang.reflect.Parameter; //反射机制类
public class Reflect<R> {
private R r; Reflect(R r){
this.r=r;
}
public void getClassName(){
System.out.println("该类的类型为:"+r.getClass().getName());
}
public void getFunctionName(){
System.out.println("该类型的函数信息:");
Method []m=r.getClass().getDeclaredMethods();
System.out.println("\t\t函数名\t\t返回值类型\t\t参数个数\t\t参数信息");
for(int i=0;i<m.length;i++){
System.out.print("\t\t"+m[i].getName()+"\t\t"+m[i].getReturnType()+"\t\t"+m[i].getParameterCount()+"\t\t");
Parameter[] p=m[i].getParameters();
for(int j =0;j<p.length;j++){
System.out.print(p[j].getType()+" "+p[j].getName());
}
System.out.println("");
}
}
}
主函数:
package forward.shop; public class reflectModel {
public static void main(String[] args) {
Shop s1=new Shop("001","话梅",3); Reflect<Shop> r=new Reflect<Shop>(s1); //要检测的类为Shop类
r.getClassName();
r.getFunctionName();
}
}
输出结果:
该类的类型为:forward.shop.Shop
该类型的函数信息:
函数名 返回值类型 参数个数 参数信息
toString class java.lang.String 0
getName class java.lang.String 0
setName void 1 class java.lang.String arg0
getNo class java.lang.String 0
setPrice void 1 float arg0
setNo void 1 class java.lang.String arg0
getPrice float 0
我们也可以直接将打印信息输出到xlsx中,使用Excel来直观的了解:
当然,也可以对int,String类测试,
eg:String 的打印结果:
java中的泛型与反射的更多相关文章
- Java 中的泛型详解-Java编程思想
Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限. 2.简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类. 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的 ...
- Java基础之Java中的泛型
1.为什么要使用泛型 这里我们俩看一段代码; List list = new ArrayList(); list.add("CSDN_SEU_Cavin"); list.add(1 ...
- Java中的泛型 (上) - 基本概念和原理
本节我们主要来介绍泛型的基本概念和原理 后续章节我们会介绍各种容器类,容器类可以说是日常程序开发中天天用到的,没有容器类,难以想象能开发什么真正有用的程序.而容器类是基于泛型的,不理解泛型,我们就难以 ...
- [JavaCore]JAVA中的泛型
JAVA中的泛型 [更新总结] 泛型就是定义在类里面的一个类型,这个类型在编写类的时候是不确定的,而在初始化对象时,必须确定该类型:这个类型可以在一个在里定义多个:在一旦使用某种类型,在类方法中,那么 ...
- 【Java入门提高篇】Day14 Java中的泛型初探
泛型是一个很有意思也很重要的概念,本篇将简单介绍Java中的泛型特性,主要从以下角度讲解: 1.什么是泛型. 2.如何使用泛型. 3.泛型的好处. 1.什么是泛型? 泛型,字面意思便是参数化类型,平时 ...
- Java开发知识之Java中的泛型
Java开发知识之Java中的泛型 一丶简介什么是泛型. 泛型就是指泛指任何数据类型. 就是把数据类型用泛型替代了. 这样是可以的. 二丶Java中的泛型 Java中,所有类的父类都是Object类. ...
- Java中的泛型 --- Java 编程思想
前言 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...
- Java 中的泛型
泛型的一般意义: 泛型,又叫 参数多态或者类型参数多态.在强类型的编程语言中普遍作用是:加强编译时的类型安全(类型检查),以及减少类型转换的次数. Java 中的 泛型: 编译时进行 类型擦除 生成与 ...
- 第九节:详细讲解Java中的泛型,多线程,网络编程
前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...
随机推荐
- C#版 - LeetCode 148. Sort List 解题报告(归并排序小结)
leetcode 148. Sort List 提交网址: https://leetcode.com/problems/sort-list/ Total Accepted: 68702 Total ...
- Unity3D中利用Action实现自己的消息管理(订阅/发布)类
引言 一般的软件开发过程中,为了方便对项目进行管理.维护和扩展,通常会采用一种MVC框架,以将显示逻辑.业务逻辑和数据进行分离. 这在传统企业软件的开发中很常见,但我在使用Unity做游戏开发的时候却 ...
- linux中gdb的使用
断点 在代码的指定位置中断,使程序在此中断. break <function> 在进入指定函数时停住 break <linenum> 在指定行号停住. break ...
- WCF 的学习过程
之前没有接触过WCF,这两天学习中.把遇到的问题和解决办法记下来. 遇到的问题: (1).HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理 ...
- ES6躬行记(10)——正则表达式
在ES5中,如果使用构造函数RegExp()初始化RegExp对象(即正则表达式),并且它的第一个参数是正则表达式时,那么不允许再传入标志字符串(即第二个参数).而ES6更改了这项限制,如果传入了第二 ...
- 【Linux】基于VMware搭建Linux系统
本篇文章侧重于操作,主要内容大致包括: 两大类操作系统简要介绍 VMware Workstation Pro 15简要介绍及安装 CentOS简要介绍及基于Wi'n'dows 操作系统的安装 一 关于 ...
- 用初中代数结合python画出正方形
在屏幕上打印类似下面的图形: 常规画正方形的算法: 这几乎是初学所有计算机语言时都会遇到的问题.算法都大致类似,就是找出打印规律然后用计算机语句表达出来.最常规的算法是:输入数字n就打印n行,首行和尾 ...
- python工程遇到的错误
1.SyntaxError: Non-ASCII character '\xe5' in file D:\eclipseworkspace\test\test_urllib2.py on line2 ...
- Sklearn中二分类问题的交叉熵计算
二分类问题的交叉熵 在二分类问题中,损失函数(loss function)为交叉熵(cross entropy)损失函数.对于样本点(x,y)来说,y是真实的标签,在二分类问题中,其取值只可能为集 ...
- With As 用法
含义:WITH AS 短语,也叫做子查询部分(subquery factoring)也称公用表表达式(CTE), ,可以定义一个SQL片断,该SQL片断会被整个SQL语句用到.可以使SQL语句的可读性 ...