java反射中的newInstance的使用 5
代码如下classA{privateinti;publicvoidset(inti){this.i=i;}publicintget(){returnthis.i;}}cl...
代码如下
class A{
private int i;
public void set(int i){
this.i=i;
}
public int get(){
return this.i;
}
}
class Test01{
public static void main(String args[]){
Class c=null;
try{
c=Class.forName("A");//创建了A类的Class对象
}catch(ClassNotFoundException e){
System.out.println("ClassNotFoundException");
System.exit();
}
//利用A类的Class对象来创建A类的实例对象
Object obj=null;
try{
obj=c.newInstance();//obj指向的A类的对象
}catch(InstantiationException e){
System.out.println("InstantiationException");
}
catch(IllegalAccessException e){
System.out.println("IllegalAccessException");
}
//obj.set(10);
//System.out.println(obj.get());
}
}
obj=c.newInstance();求问obj指向的是哪里?newInstance返回的类型只能使用Object接收?
请教大神解答下,谢谢,中金酬谢 展开
class A{
private int i;
public void set(int i){
this.i=i;
}
public int get(){
return this.i;
}
}
class Test01{
public static void main(String args[]){
Class c=null;
try{
c=Class.forName("A");//创建了A类的Class对象
}catch(ClassNotFoundException e){
System.out.println("ClassNotFoundException");
System.exit();
}
//利用A类的Class对象来创建A类的实例对象
Object obj=null;
try{
obj=c.newInstance();//obj指向的A类的对象
}catch(InstantiationException e){
System.out.println("InstantiationException");
}
catch(IllegalAccessException e){
System.out.println("IllegalAccessException");
}
//obj.set(10);
//System.out.println(obj.get());
}
}
obj=c.newInstance();求问obj指向的是哪里?newInstance返回的类型只能使用Object接收?
请教大神解答下,谢谢,中金酬谢 展开
展开全部
class Test01{
public static void main(String args[]) {
Class c = null;
try {
c = Class.forName("A");// 创建了A类的Class对象
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException");
}
// 利用A类的Class对象来创建A类的实例对象
Object obj = null;
try {
obj = c.newInstance();// obj指向的A类的对象
} catch (InstantiationException e) {
System.out.println("InstantiationException");
} catch (IllegalAccessException e) {
System.out.println("IllegalAccessException");
}
// obj.set(10); // 肯定不行的,Object咋会有这个方法呢?
// System.out.println(obj.get());
// 请这样,并且newInstance默认调用无参构造器,更多请google
A a = new A();
a.set(1);
System.out.println(a.get());
A aa;
try {
aa = A.class.newInstance();
aa.set(2);
System.out.println(aa.get());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
try {
Class<?> Clazz = Class.forName("A");
A aaa = (A) Clazz.newInstance();
aaa.set(2);
System.out.println(aaa.get());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
}
}
public static void main(String args[]) {
Class c = null;
try {
c = Class.forName("A");// 创建了A类的Class对象
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException");
}
// 利用A类的Class对象来创建A类的实例对象
Object obj = null;
try {
obj = c.newInstance();// obj指向的A类的对象
} catch (InstantiationException e) {
System.out.println("InstantiationException");
} catch (IllegalAccessException e) {
System.out.println("IllegalAccessException");
}
// obj.set(10); // 肯定不行的,Object咋会有这个方法呢?
// System.out.println(obj.get());
// 请这样,并且newInstance默认调用无参构造器,更多请google
A a = new A();
a.set(1);
System.out.println(a.get());
A aa;
try {
aa = A.class.newInstance();
aa.set(2);
System.out.println(aa.get());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
try {
Class<?> Clazz = Class.forName("A");
A aaa = (A) Clazz.newInstance();
aaa.set(2);
System.out.println(aaa.get());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
}
}
2013-12-01
展开全部
其实类就是一个对象么。object就是对象的意思。
object就是泛指所有的类,而我们常用的 A a = new A();这种写法就是具体化了。其实也可以写成Object ojb = new A();
newIntance()就是对象的实例化,返回的一个对象,如果知道具体对象的时很么的话,也可以直接用该对象来接受 A a = c.newInstance()
object就是泛指所有的类,而我们常用的 A a = new A();这种写法就是具体化了。其实也可以写成Object ojb = new A();
newIntance()就是对象的实例化,返回的一个对象,如果知道具体对象的时很么的话,也可以直接用该对象来接受 A a = c.newInstance()
追问
我也是这么认为的,但是为什么不能用obj访问我的get、set方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-01
展开全部
Object obj=Class.forName("A").newInstance();
这个obj就是A类的一个实例。
这个obj就是A类的一个实例。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class Test01{
public static void main(String args[]) {
Class c = null;
try {
c = Class.forName("A");// 创建了A类的Class对象
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException");
}
// 利用A类的Class对象来创建A类的实例对象
Object obj = null;
try {
obj = c.newInstance();// obj指向的A类的对象
} catch (InstantiationException e) {
System.out.println("InstantiationException");
} catch (IllegalAccessException e) {
System.out.println("IllegalAccessException");
}
// obj.set(10); // 肯定不行的,Object咋会有这个方法呢?
// System.out.println(obj.get());
// 请这样,并且newInstance默认调用无参构造器,更多请google
A a = new A();
a.set(1);
System.out.println(a.get());
A aa;
try {
aa = A.class.newInstance();
aa.set(2);
System.out.println(aa.get());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
try {
Class<?> Clazz = Class.forName("A");
A aaa = (A) Clazz.newInstance();
aaa.set(2);
System.out.println(aaa.get());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
}
}
public static void main(String args[]) {
Class c = null;
try {
c = Class.forName("A");// 创建了A类的Class对象
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException");
}
// 利用A类的Class对象来创建A类的实例对象
Object obj = null;
try {
obj = c.newInstance();// obj指向的A类的对象
} catch (InstantiationException e) {
System.out.println("InstantiationException");
} catch (IllegalAccessException e) {
System.out.println("IllegalAccessException");
}
// obj.set(10); // 肯定不行的,Object咋会有这个方法呢?
// System.out.println(obj.get());
// 请这样,并且newInstance默认调用无参构造器,更多请google
A a = new A();
a.set(1);
System.out.println(a.get());
A aa;
try {
aa = A.class.newInstance();
aa.set(2);
System.out.println(aa.get());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
try {
Class<?> Clazz = Class.forName("A");
A aaa = (A) Clazz.newInstance();
aaa.set(2);
System.out.println(aaa.get());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询