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题:什么是多态? ...
随机推荐
- c# + Sql server 事务处理
事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便 ...
- ClickHouse开源数据库
ClickHouse是一个开源的面向列式数据的数据库管理系统,能够使用SQL查询并且生成实时数据报告. 优点: 1.并行处理单个查询(利用多核) 2.在多个服务器上分布式处理 3.非常快的扫描,可用于 ...
- php strcmp()字典排序
字典排序(lexicographical order)是一种对于随机变量形成序列的排序方法.其方法是,按照字母顺序,或者数字小大顺序,由小到大的形成序列. 比如,字典中a-z,是依次递增的,a,b,c ...
- 一段能瞬间秒杀所有版本IE的简单HTML代码
许多人都非常讨厌InternetExplorer,在西方万圣节即将到来之际,让我们来看一个真正吓人的东西——如何用一段简单的HTML和CSS,将任何版本的IE搞死.我们只需要简单地打开任意文本编辑器, ...
- Neutron相关资料链接
1.OpenStack Neturon 官方文档: https://docs.openstack.org/mitaka/networking-guide/ 2.Neturon理解系列文章: http: ...
- 目标检测之R-FCN
R-FCN:Object Detection via Region-based Fully Convolutional Networks R-FCN的网络结构 一个Base的convolutional ...
- zabbix-监控Linux服务器
一.zabbix监控 1.关闭防火墙 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disabl ...
- sizeof 是编译时运算符
typedef char RT1;typedef struct{ char a[2]; } RT2;template<typename T> RT1 test(typename T::X ...
- PHP数组的创建
案例: 仔细看代码,PHP创建数组 <?php $names[0]='Peter'; $names[1]='Minot'; $names[2]='Smith'; echo $names[0].' ...
- 09 Spring框架 AOP (二) 高级用法
上一篇文章我们主要讲了一点关于AOP编程,它的动态考虑程序的运行过程,和Spring中AOP的应用,前置通知,后置通知,环绕通知和异常通知,这些都是Spring中AOP最简单的用法,也是最常用的东西, ...