1、

package reflectionZ;

import java.lang.reflect.Constructor;
import java.util.List; public class Treflection01
{
public static void main(String[] args) throws Exception
{
// 第13课 Class<?> clazz1 = Class.forName("reflectionZ.Cat");
// 使用反射 生成对象
// ZC: 创建出来的对象,使用的时候 需要处理 :
// ZC: (1)、强转成 某类的对象
// ZC: (2)、继续用反射来操作这个 对象 // 使用的是 默认的 构造函数
clazz1.newInstance(); // 强转 // 通过Class对象来得到构造函数
Constructor c1 = clazz1.getConstructor(Class.forName("java.lang.String"), int.class);
Cat cat1 = (Cat)c1.newInstance("小猫", 6); // 强转
cat1.Show(); Constructor<?> c2 = clazz1.getConstructor(String[].class);
String[] foods = {"鱼", "老鼠"};
// Exception in thread "main" java.lang.IllegalArgumentException: wrong number of arguments
//Cat cat2 = (Cat)c2.newInstance(foods); // 强转
// 可变参数 ==> 拆散 --> String[] foods==>拆成foods[0],foods[1],...
// ZC: 可是,普通的函数调用,没有这种情况的啊,为啥Constructor.newInstance(...)会这样?
Cat cat2 = (Cat)c2.newInstance((Object)foods); // 强转
cat2.Show();
}
} class Cat
{
public Cat()
{}
public Cat(String _strName, int _iAge)
{
FstrName = _strName;
FiAge = _iAge;
}
public Cat(String[] _foods)
{
Ffoods = _foods;
} public String FstrName;
public void setFstrName(String fstrName)
{
System.out.println("setFstrName("+fstrName+")");
FstrName = fstrName;
}
public int FiAge;
public String[] Ffoods = null;
private String Fstr1 = "WW"; public void Show()
{
System.out.println("名字 : "+FstrName);
if (Ffoods != null)
for (int i=0; i<Ffoods.length; i++)
System.out.println("Ffoods["+i+"] : "+Ffoods[i]);
}
public void Show(String _strName)
{
System.out.println("名字 : "+_strName);
}
public void Show(String _strName, int _iAge)
{
System.out.println("名字 : "+_strName+" , 年龄 : "+_iAge);
}
public void Show(List _list)
{
if (_list == null)
{
System.out.println("输入的_list == null .");
return;
}
for (int i=0; i<_list.size(); i++)
System.out.println("_list["+i+"] : "+_list.get(i));
}
private void Show(int _iAge)
{
System.out.println("年龄 : "+_iAge);
}
}

2、

Treflection01_Class对象_构造函数_创建对象的更多相关文章

  1. 虚函数_构造函数_测试_VS2010x86

    1.控制台测试代码: #include <stdio.h> #include <windows.h> class A { public: A() { printf(" ...

  2. C++_基础_类和对象2

    内容: (1)构造函数 (2)初始化列表及其必要性 (3)支持自定义类型转换的构造函数 (4)this指针 (5)const对象和成员函数 (6)析构函数 1.构造函数1.1 格式: class 类名 ...

  3. 易语言关于使用CURL,网页_访问,网页_访问S,网页_访问_对象,鱼刺(winHttpW)发送Get性能测试

    易语言关于使用 CURL,网页_访问,网页_访问S,网页_访问_对象,鱼刺(winHttpW)发送Get性能测试 测试模块情况: |-精易模块5.8  |-鱼刺类Http  |-libCURL +++ ...

  4. C++_构造函数与析构函数

    构造函数与析构函数 OOP第二课 1 构造函数 1.1 构造函数具有一些特殊的性质 1.2 定义构造函数的一般形式 1.3 利用构造函数创建对象 2 成员初始化表 3 缺省参数的构造函数 4 重载构造 ...

  5. C++_基础_类和对象

    内容: (1)引用 (2)类型转换 (3)C++社区给C程序员的建议 (4)面向对象编程的概念 (5)类和对象 (6)构造函数 (7)初始化列表及其必要性 1.引用1.1 指针和引用的使用说明(1)指 ...

  6. (79)Wangdao.com第十五天_JavaScript 对象的继承_prototype原型对象_封装_函数式编程

    javascript 内置了许多 function 函数(){...} js 执行首先就会执行自己内置的函数定义 (function Function.function Object) 对象的继承 大 ...

  7. JS基础_构造函数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节

    C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面 ...

  9. 转:HIBERNATE一些_方法_@注解_代码示例---写的非常好

    HIBERNATE一些_方法_@注解_代码示例操作数据库7步骤 : 1 创建一个SessionFactory对象 2 创建Session对象 3 开启事务Transaction : hibernate ...

随机推荐

  1. hdu 4512 吉哥系列故事——完美队形I【LCIS经典应用】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4512 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  2. Oracle数据库的连接模式connection Mode、连接connection与会话session

    数据库的连接模式Connection Mode: Dedicated Server Mode(专有模式) 当用户发出请求时,如远程的client端通过监听器连接数据库上,ORACLE的服务器端会启用一 ...

  3. window下使用mysql,报未定义标识符"SOCKET"

    解决方法一: 这个错误是在VC中使用MySQL数据库时出现在mysql_com.h文件中的  my_socket fd; 说明未my_socket未定义,这时只需要在引用mysql.h头文件之前引用# ...

  4. reg_action

    function check_email($win) { $win = trim($win); $reg = '/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* ...

  5. 错误0x80070522:客户端没有所需的特权

    win10或win7 C盘复制文件等遇到"错误0x80070522:客户端没有所需的特权" 在运行中输入 icacls c:\ /setintegritylevel M

  6. Leetcode 之 Combination Sum系列

    39. Combination Sum 1.Problem Find all possible combinations of k numbers that add up to a number n, ...

  7. Git学习笔记-精简版

    注意本文参考廖雪博客: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 一:Git ...

  8. HTML 2 (Day49)

    一.table标签 http://www.cnblogs.com/shaojiafeng/p/7516741.html 二.form 表单属性 action:表单提交到哪.一般指向服务端一个程序,程序 ...

  9. window.event.keycode值大全

    window.event.keycode值大全 event.keycode值大全 1 keycode 8 = BackSpace BackSpace 2 keycode 9 = Tab Tab 3 k ...

  10. IE调试页面总结

    随着IE版本的升级,IE变的越来越强大,随之带来的问题也是越来越明显,如:如何调试在低版本的浏览器中 的情况 IE9的方法: 出于未知需求,用户在安装了较高版本IE浏览器(IE9)之后,又需要使用低版 ...