- 浏览: 41388 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (76)
- Dojo 组件 (1)
- 数据库 (7)
- Maven (3)
- 负载均衡 (4)
- Java (12)
- 多线程 (4)
- Spring (3)
- Java缓存 (3)
- 高并发 (3)
- 热部署 (2)
- 大数据 (3)
- 分布式 (1)
- Linux (4)
- 云计算 (1)
- Eclipse (2)
- Tomcat (2)
- Shell (1)
- Python (1)
- 测试 (3)
- 算法与数据结构 (1)
- 设计模式 (1)
- JQuery (1)
- Nginx (1)
- 开发工具 (7)
- JMS (2)
- CI 持续集成 (2)
- Java UI (0)
- UI (1)
- Jenkins (1)
- Ibatis (1)
- Hadoop (1)
- Zookeeper (1)
- Redis (1)
java反射
反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运行的时候还可以动态地去操作他们.
package org;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;
public class TestReflection {
public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, SecurityException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {
Class ownerClass = Class.forName("org.test");
Object class1 = ownerClass.newInstance();
Field field = ownerClass.getField("testNumber"); // get public variable in class
Object propertyObject = field.get(class1);
System.out.println(propertyObject);
Method method = ownerClass.getMethod("getNowDateShort", null);
method.invoke(ownerClass, null);
String currentDate = new Date().toString();
Method method2 = ownerClass.getMethod("strToDate2", String.class);
method2.invoke(ownerClass, currentDate);
}
}
package org;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
public class test implements Runnable {
public int testNumber=2;
private int number;
public void Calculator(int number) {
this.number = number;
}
@Override
public void run() {
for (int i=0; i<10; i++) {
System.out.printf("%s: %d*%d = %d\n", Thread.currentThread().getName(), number, i, i*number);
}
}
public static void main(String[] args) throws ParseException {
Thread threads[] = new Thread[10];
for (int i=0; i<10; i++) {
test calculator = new test();
calculator.Calculator(3);
threads[i] = new Thread(calculator);
if (i==2) {
threads[i].setPriority(10);
} else {
threads[i].setPriority(1);
}
threads[i].setName("Thread "+i);
threads[i].start();
}
}
public static String strToDate2(String strDate) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String strtodate =strDate+" AAAAAAAAA ";
System.out.println(strtodate);
return strtodate;
}
public static Date strToDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
System.out.println("@@@@ "+String.valueOf(strtodate));
return strtodate;
}
public static Date getNowDateShort() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(currentTime);
ParsePosition pos = new ParsePosition(0);
Date currentTime_2 = formatter.parse(dateString, pos);
System.out.println("@@@@ "+String.valueOf(currentTime_2));
return currentTime_2;
}
}
输出结果:
2
@@@@ Thu Dec 24 00:00:00 CST 2015
Thu Dec 24 17:38:33 CST 2015 AAAAAAAAA
1. http://blog.csdn.net/ljphhj/article/details/12858767
2. http://ifeve.com/java-reflection-tutorial/
3. http://www.importnew.com/9078.html
4. http://www.wangyuxiong.com/archives/52040
5. http://azrael6619.iteye.com/blog/429797 ***
反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运行的时候还可以动态地去操作他们.
package org;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;
public class TestReflection {
public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, SecurityException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {
Class ownerClass = Class.forName("org.test");
Object class1 = ownerClass.newInstance();
Field field = ownerClass.getField("testNumber"); // get public variable in class
Object propertyObject = field.get(class1);
System.out.println(propertyObject);
Method method = ownerClass.getMethod("getNowDateShort", null);
method.invoke(ownerClass, null);
String currentDate = new Date().toString();
Method method2 = ownerClass.getMethod("strToDate2", String.class);
method2.invoke(ownerClass, currentDate);
}
}
package org;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
public class test implements Runnable {
public int testNumber=2;
private int number;
public void Calculator(int number) {
this.number = number;
}
@Override
public void run() {
for (int i=0; i<10; i++) {
System.out.printf("%s: %d*%d = %d\n", Thread.currentThread().getName(), number, i, i*number);
}
}
public static void main(String[] args) throws ParseException {
Thread threads[] = new Thread[10];
for (int i=0; i<10; i++) {
test calculator = new test();
calculator.Calculator(3);
threads[i] = new Thread(calculator);
if (i==2) {
threads[i].setPriority(10);
} else {
threads[i].setPriority(1);
}
threads[i].setName("Thread "+i);
threads[i].start();
}
}
public static String strToDate2(String strDate) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String strtodate =strDate+" AAAAAAAAA ";
System.out.println(strtodate);
return strtodate;
}
public static Date strToDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
System.out.println("@@@@ "+String.valueOf(strtodate));
return strtodate;
}
public static Date getNowDateShort() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(currentTime);
ParsePosition pos = new ParsePosition(0);
Date currentTime_2 = formatter.parse(dateString, pos);
System.out.println("@@@@ "+String.valueOf(currentTime_2));
return currentTime_2;
}
}
输出结果:
2
@@@@ Thu Dec 24 00:00:00 CST 2015
Thu Dec 24 17:38:33 CST 2015 AAAAAAAAA
1. http://blog.csdn.net/ljphhj/article/details/12858767
2. http://ifeve.com/java-reflection-tutorial/
3. http://www.importnew.com/9078.html
4. http://www.wangyuxiong.com/archives/52040
5. http://azrael6619.iteye.com/blog/429797 ***
发表评论
-
Java8
2016-01-19 15:49 4621. http://ifeve.com/java-8-feat ... -
ThreadPool
2016-01-13 15:29 364http://cuisuqiang.iteye.com/blo ... -
java基础
2015-12-24 17:33 3731. 抽象类和接口; 这是多态的一种体现,接口是函数方法名的集 ... -
java执行程序过程
2015-11-25 18:10 438程序执行过程: 1. Load ... -
java单例模式Singleton的设计
2015-11-25 17:19 478常用版本 public class Singleton { ... -
Jave Exception
2015-11-13 15:53 400一、 异常 Example of checked Excep ... -
读取图像文件
2015-04-10 17:19 4111. 将字节数组转换成图像文件 byte[] byteArr ... -
Java泛型
2013-10-31 11:34 582泛型 泛型是Java SE 1.5 ... -
java serializable 序列化
2013-10-28 13:33 563对象的串行化(Serialization) 一、串行化 ... -
GWT 例子
2013-09-22 15:45 452布局 http://www.csharpwin.com/do ... -
Java动态加载类ClassLoad和Class.forName
2013-03-07 11:38 1451Java 中的类加载器大致 ...
相关推荐
Java反射是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并操作类的对象。在Java中,反射机制提供了强大的能力,包括在运行时检查类的结构、创建对象实例、调用方法以及访问和修改字段值。...
Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用私有方法...
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建对象、获取类...
Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类是java.lang.Class,它代表了运行时的类信息。通过Class对象,我们...
在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java.lang.Class`类是反射的核心,它代表了Java中的每一个类。我们可以通过以下方式获取到一个...
### Java反射性能测试分析 #### 引言 Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时动态地访问、检测和修改类、接口、字段和方法等对象。然而,反射操作通常会引入额外的开销,这在性能敏感的...
### Java反射机制总结 #### 反射的概念与起源 反射的概念最早由Smith于1982年提出,指的是程序能够访问、检测并修改其自身状态或行为的能力。这一概念的提出迅速引起了计算机科学领域的广泛关注,并在之后的研究中...
Java反射是Java编程语言中的一个强大特性,它允许运行时的程序访问并操作类、接口、字段和方法等信息,即使这些信息在编译时并未明确知晓。在Java中,反射通常通过`java.lang.Class`类和相关的API来实现。本实例将...
### Java反射机制详解 #### 一、概述 Java反射机制是一种强大的编程技术,它允许运行时检查类的信息并操作对象的内部结构。本篇将基于Sun公司的官方文档《Java™ Core Reflection API and Specification》(1997年...
### 反射实例—JAVA反射机制 #### 一、反射概念及原理 反射在计算机科学领域,特别是程序设计中,是指程序有能力访问、检测和修改其自身的结构和行为。这一概念最早由Smith于1982年提出,并迅速应用于各种编程语言...
### Java反射机制详解 #### 一、什么是Java反射? Java反射是Java编程语言的一个特性,它允许运行时检查和操作程序结构(类、字段、方法等)。反射的主要用途包括但不限于:动态实例化对象、访问私有成员、调用...
Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。这个能力使得开发者可以突破静态类型的束缚,实现一些在编译时期无法完成...
Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有高度的灵活性,尤其在处理框架、插件系统以及元数据驱动...
### Java反射机制详解 #### 一、反射的基本概念与历史背景 反射的概念最早由Smith在1982年提出,其核心思想是程序有能力访问、检测甚至修改自身的状态和行为。这种能力一经提出,迅速成为了计算机科学领域的研究...
### Java反射机制与NoSuchMethodException详解 在Java编程中,反射是一种强大的机制,允许程序在运行时检查和修改自身结构和行为。然而,当开发者尝试使用反射调用一个不存在的方法时,便会遇到`java.lang....
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建动态代理等。...
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON...
### Java反射机制详解 #### 一、什么是Java反射机制? Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的...
Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查并操作类、接口、字段和方法等对象。在"北大青鸟java反射机制"的学习资料中,我们将会深入探讨这一核心特性。 首先,我们要理解反射的核心概念...