Treflection04_面试题
1、
package reflectionZ; import java.lang.reflect.Field;
import java.lang.reflect.Method; public class Treflection04
{
// 第17讲 public static void main(String[] args) throws Exception
{
Test2 test2 = new Test2();
//int iRtn = Sum01(test2);
int iRtn = Sum02(test2);
System.out.println("iRtn : "+iRtn);
} public static int Sum01(Test2 _test2) throws Exception
{
int iRst = 0;
Class<?> clazz1 = Class.forName("reflectionZ.Test2");
Field[] fields = clazz1.getDeclaredFields();
for (int i=0; i<fields.length; i++)
{
Field field = fields[i];
System.out.println("field.getGenericType() : "+field.getGenericType());
//if (int.class == field.getType()) // 方法1
if (field.getGenericType().toString().equalsIgnoreCase("int")) // 方法2
{
field.setAccessible(true);
int j = field.getInt(_test2);
iRst += j;
}
} return iRst;
} public static int Sum02(Test2 _test2) throws Exception
{
int iRst = 0;
Class<?> clazz1 = Class.forName("reflectionZ.Test2");
Method[] methods = clazz1.getMethods();
for (int i=0; i<methods.length; i++)
{
Method method = methods[i];
if (method.getName().startsWith("get") && (! method.getName().equalsIgnoreCase("getClass"))) // 排除掉 getClass()
{
// 函数 有返回值,处理方式
//int j = (int)method.invoke(_test2); // ZC: 这种处理方式 ==> 行不通
Integer j = (Integer)method.invoke(_test2);
iRst += j;
}
} return iRst;
}
} class Test2
{
public static final Long serverUID = 1L; private int FiIdx1 = 10;
private int FiIdx2 = 20;
private int FiIdx3 = 30;
private int FiIdx4 = 40;
private int FiIdx5 = 50; public int getFiIdx1() {
return FiIdx1;
}
public int getFiIdx2() {
return FiIdx2;
}
public int getFiIdx3() {
return FiIdx3;
}
public int getFiIdx4() {
return FiIdx4;
}
public int getFiIdx5() {
return FiIdx5;
}
}
2、
Treflection04_面试题的更多相关文章
- .NET面试题系列[8] - 泛型
“可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...
- 关于面试题 Array.indexof() 方法的实现及思考
这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...
- 对Thoughtworks的有趣笔试题实践
记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...
- 从阿里巴巴笔试题看Java加载顺序
一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...
- JAVA面试题
在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...
- C++常考面试题汇总
c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...
- .NET面试题系列[4] - C# 基础知识(2)
2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...
- 我们公司的ASP.NET 笔试题,你觉得难度如何
本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识. 第1-3题会使用到一个枚举类,其定义如下: public enum QuestionType { Text = , ...
- 我设计的ASP.NET笔试题,你会多少呢
本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...
随机推荐
- 下载苹果APP历史版本
1.参考教程: iOS 下载旧版本 app 或者已下架 app 方法 - 简书 https://www.jianshu.com/p/33dc8bfd4134 2.步骤总结: 下载旧版带 app 管理的 ...
- Vsftpd匿名登录设置
修改配置文件 # vi /etc/vsftpd/vsftpd.conf local_enable=NO connect_from_port_20=YES listen=YES listen_port= ...
- mongoDB之find()
一.find方法 db.collection_name.find();查询 查询所有结果 1) db.users.find();类似于select * from users; 指定返回那些列(键) 2 ...
- 微信公众号 订单 待发货-配送中-已收货 logic
w function logistics_sameorder($logistics) { $arr = array(); $tmp_wxout_trade_no = ''; $w = 0; $wi = ...
- String.prototype.charCodeAt()
w <script> function wf(w) { console.log(w) } var w = 'ABC'.charCodeAt(0); wf(w) var w = '中'.ch ...
- selenium3.x的使用例子
1.需要下载selenium的相关包以备工程调用. 2.工程中配置引用selenium的lib. selenium3.x中主要是根据webdriver进行浏览器的各种操作,可以完全模仿人工操作浏览器, ...
- SpringMVC 之数据转换和国际化
1. 数据绑定流程 SpringMVC 主框架将 ServletRequest 对象及目标方法的入参实例传递给 WebDataBinderFactory 实例,以创建 DataBinder 实例对象; ...
- EC断言16种判断
expected_conditions一般也简称EC,本篇先介绍下有哪些功能,后续更新中会单个去介绍. title_is: 判断当前页面的title是否完全等于(==)预期字符串,返回布尔值 titl ...
- Linux学习笔记(8)文件搜索与帮助
帮助: (1) man ls (2) info ls (3) whatis ls (4) help 搜索: (1) which ls :查看ls命令所在绝对路径 (2) locate user ...
- python16_day03【集合、编码、函数、递归、内置函数】
一.集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 #创建: s = {3,5,9,10} # ...