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题:什么是多态? ...
随机推荐
- sql---如何把sql查询出来的结果当做另一个sql的条件查询,1、语句2、with as
'; -- table2 的 name 作为 table1的条件 select * from table1 where name in (select name from table2) --如果有多 ...
- Tornado源码浅析
初识tornado 经典的hello world 案例: import tornado.ioloop import tornado.web class MainHandler(tornado.web. ...
- 6.javaScript中的二维数组
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- ES6通过WeakMap解决内存泄漏问题
一.Map 1.定义 Map对象保存键值对,类似于数据结构字典:与传统上的对象只能用字符串当键不同,Map对象可以使用任意值当键. 2.语法 new Map([iterable]) 属性 size:返 ...
- Struts 上传文件
1. 客户端注意事项 method="post" enctype="multipart/form-data" <input type="file ...
- Tomcat 服务器介绍
Tomcat 目录介绍 Tomcat 主目录有 bin, conf, lib, logs, temp, webapps, work 7个文件夹 bin 目录 主要用来存放 tomcat 命令 .sh ...
- c++智能指针,new之后不需要delete,简单的垃圾回收
http://www.cnblogs.com/TenosDoIt/p/3456704.html 智能指针的初始化: 错误: std::shared_ptr<Serializer> seri ...
- django之单表操作
1.查询方法: <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs ...
- 关于session的常用用法
(一)django有四中session实现方式 1.数据库(database-backed sessions) 2.缓存(cached sessions) 3.文件系统(file-based sess ...
- 012-JDK可视化监控工具-jstack
一.概述 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&qu ...