传智播客-Java基础加强-day3

原创 2011年01月13日 00:08:00

Method代表一个类中的成员方法:

例如:

Method methodCharAt=String.class.getMethod("charAt", int.class);//获得String对象内部的参赛为int.classcharat()方法

methodCharAt.invoke(str1, 1);   //创建String类型实例对象str1的参数为1的一个charat()方法的对象

System.out.println(methodCharAt.invoke(str1, 1));

str1换为null则表示此methodCharAt是获得的类中的静态方法

System.out.println(methodCharAt.invoke(str1,new Object[]{2}));

//jdk1.4中的用法

 

实例:反射调用另一个类的main()方法;

 

//运行是要传入参数cn.itcast.day1.TestArguments

package cn.itcast.day1;

import java.lang.reflect.*;

public class ReflectTest {

    public static void main(String[] args) throws Exception {     

           String startingClassName=args[0];//Main方法接收的字符串对象(另一个类的类名)

           Method mainMethod=Class.forName(startingClassName).getMethod("main",String[].class);//获得另一个类mian方法

           mainMethod.invoke(null,new Object[]{new String[]{"11","22","33"}});/*创建另一个类的参数为Object[]{new String[]{"11","22","33"}}的静态的main方法,这里的new String[]{"11","22","33"}会被拆开解释为三个字符串对象,使用Object[]{}包含后被拆开解释为一个数组对象。替换为mainMethod.invoke(null,(Object)new String[]{"11","22","33"});也可以实现*/

    }

}

class TestArguments{

    public static void main(String [] args){

       for(String arg:args){

           System.out.println(arg);

       }     

    }

}

 

数组的反射及应用:

不同的类型,不同的维数则字节码不同

基本类型数组不能转换为object数组,例如:

int [] a=new int[2];

Object [] obj=a1;//不可以把a1转化成obj

int [] a5=new int[]{1,2,3}; //数组大括号中定义了元素,就不能在中括号中定义数组元素个数

 

输出查看数组:

String [] a4=new String[]{"a","b","c"};

int [] a5=new int[]{1,2,3}; //数组大括号中定义了元素,就不能在中括号中定义数组元素个数

System.out.println(Arrays.asList(a5));//…………

System.out.println(Arrays.asList(a4));//输出字符串数组[a, b, c]

 

读取数组中的元素:

实例:

package cn.itcast.day1;

import java.lang.reflect.*;

public class ReflectTest {

    public static void main(String[] args) throws Exception {

       printObject(new int[]{1,2,3});

           printObject("xyz");

    }

private static void printObject(Object obj) {

       Class clazz=obj.getClass();//得到obj的字节码

       if(clazz.isArray()){//判断是否是数

           int len=Array.getLength(obj);//获得数组obj的长度

           for(int i=0;i<len;i++){

              System.out.println(Array.get(obj, i));//获得数组obj的第i个元素

           }

       }else{

           System.out.println(obj);

       }

}

 

 

Java基础:基础加强

Java enhance
  • zr523725410
  • zr523725410
  • 2014年09月26日 00:24
  • 2289

黑马程序员-张孝祥Java基础加强(PART1)

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 知识点: 1.Java5的几个新特性,...
  • niniliwei
  • niniliwei
  • 2014年02月28日 15:30
  • 1062

[黑马程序员] Java基础加强(5-7天)2010年Java高新技术_张孝祥

---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ---------------------- 第1单元:概述 ...
  • shang1jk
  • shang1jk
  • 2013年05月08日 09:57
  • 2840

.NET基础加强第一天(1)

作为一个程序员基础太差,什么都不懂会被鄙视。慢慢学习吧
  • salafh
  • salafh
  • 2016年12月26日 18:00
  • 113

Java基础加强之集合篇(模块记忆、精要分析)

千里之行,始于足下。把别人的变成自己,再把自己的分享给别人,这也是一次提升的过程。本文的目的是以一篇文章从整体把握集合体系又不失一些细节上的实现,高手路过。 集合的作用与特点 Java是一门面向对...
  • whm114336793
  • whm114336793
  • 2017年02月22日 12:13
  • 515

java程序员菜鸟进阶(六)《HTTP权威指南》之HTTP相关概念详解

Http:超文本传输协议,在我们如今的网络时代。我们每天浏览着万万千千的网页,图片,文字,这些都离不开Http,他是我们快速可靠访问世界各地的web服务器资源地基础。Http使用的是可靠地数据传输协议...
  • csh624366188
  • csh624366188
  • 2013年02月04日 13:33
  • 15829

Java基础补习Day3

异常处理 Java为了保证程序的健康运行,通过异常处理机制,来让代码更加完善。Throwable是所有异常信息的基类Error:非常严重的错误,当前Java层面无法解决,让程序终止 Exception...
  • Embed_coder
  • Embed_coder
  • 2017年07月13日 15:06
  • 160

Java基础:基础加强

1.泛型 1.1 概述 (1).泛型是JDK1.5版本以后出现的新特性,用于解决安全文帝的一个类型安全机制; (2).泛型在集合类中的应用:JDK1.5以后的集合类希望在...
  • wtxwd
  • wtxwd
  • 2016年10月31日 09:57
  • 265

Python学习day3作业-HAproxy配置文件操作

Python days3作业 作业需求 HAproxy配置文件操作 1. 根据用户输入,输出对应的backend下的server信息 2. 可添加backend 和sever信息...
  • ygqygq2
  • ygqygq2
  • 2016年11月25日 23:22
  • 732

JAVA基础加强之枚举

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ ...
  • Youxi_GA
  • Youxi_GA
  • 2014年02月16日 15:11
  • 375
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:传智播客-Java基础加强-day3
举报原因:
原因补充:

(最多只允许输入30个字)