有关反射学习Class.forName
2018-01-09 12:02
211 查看
package com.sitech.ordersvc.group.comp.busi.basebusi;
//有关反射学习
public class Test1 {
public void plus(Integer a,Integer b){
Integer c =a+b;
System.out.println("结果是"+c);
}
public static void main(String[] args) {
//第一种
String a ="com.sitech.ordersvc.group.comp.busi.basebusi.Test1";
try {
Class class1 =Class.forName(a);
try {
Test1 test1 =
(Test1)class1.newInstance();
test1.plus(1, 2);
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//第二种
Class clazz =
Test1.class;
try {
Test1 test2 = (Test1) clazz.newInstance();
test2.plus(3, 4);
} catch (Exception e) {
e.printStackTrace();
}
//第三种()第二种类似,更安全一些
Class<Test1> clazz2 =Test1.class;
try {
Test1 a2 =clazz2.newInstance();
a2.plus(5, 6);
} catch (Exception e) {
e.printStackTrace();
}
}
}
//有关反射学习
public class Test1 {
public void plus(Integer a,Integer b){
Integer c =a+b;
System.out.println("结果是"+c);
}
public static void main(String[] args) {
//第一种
String a ="com.sitech.ordersvc.group.comp.busi.basebusi.Test1";
try {
Class class1 =Class.forName(a);
try {
Test1 test1 =
(Test1)class1.newInstance();
test1.plus(1, 2);
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//第二种
Class clazz =
Test1.class;
try {
Test1 test2 = (Test1) clazz.newInstance();
test2.plus(3, 4);
} catch (Exception e) {
e.printStackTrace();
}
//第三种()第二种类似,更安全一些
Class<Test1> clazz2 =Test1.class;
try {
Test1 a2 =clazz2.newInstance();
a2.plus(5, 6);
} catch (Exception e) {
e.printStackTrace();
}
}
}
相关文章推荐
- Java学习笔记_反射_Class.forName()加载并修改一个类的私有成员变量
- java两种反射的区别 - Class.forName()和ClassLoader.loadClass()
- java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- java反射中,Class.forName和classloader的区别
- Java基础面试题6-Java反射中Class.forName和classloader的区别
- java 反射机制 之 Class.forName() 获取class的对象
- JDBC学习2:为什么要写Class.forName("XXX")?
- Java 反射中,class.forName()和classLoader的区别
- 黑马程序员-反射-.class-Class.forName()-object.getClass()-Constructor-Field
- Java学习--Class.forName的作用是什么
- Java 反射机制 .class .getClass() Class.forName("") .TYPE int void
- JDBC学习2:为什么要写Class.forName("XXX")?
- Java Class.forName 学习及理解
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- 反射中Class.forName()和ClassLoader.loadClass()的区别
- 02_3中方式的反射,通过Class.forName获得Class对象,通过类.class获得字节码对象,通过类实例.getClass()的方式获得Class对象
- java反射中,Class.forName和classloader的区别(代码说话)
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- 02_3中方式的反射,通过Class.forName获得Class对象,通过类.class获得字节码对象,通过类实例.getClass()的方式获得Class对象
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别