Java反射类3-4自由编程
这是Goods商品类:
package com.winking.fanshe;
public class Goods {
public Goods() {
super();
}
public Goods(int num, String name, int price, String desp) {
super();
this.num = num;
this.name = name;
this.price = price;
this.desp = desp;
}
private int num;
private String name;
private int price;
private String desp;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getDesp() {
return desp;
}
public void setDesp(String desp) {
this.desp = desp;
}
@Override
public String toString() {
return "Goods [num=" + num + ", name=" + name + ", price=" + price + ", desp=" + desp + "]";
}
public void display() {
System.out.println(num+" "+name+" "+price+" "+desp);
}
}这是Constructor测试类:
package com.winking.fanshe;
import java.lang.reflect.Constructor;
import org.junit.Test;
public class ConstructorTest_GoodTest {
@Test
/**
* 获得无参的构造方法
*/
public void demo1() throws Exception{
Class class1 =Class.forName("com.winking.fanshe.Goods");
Constructor c =class1.getConstructor();
Goods goods =(Goods) c.newInstance();
goods.display();
}
/**
* 获得有参的构造方法
* @throws Exception
*/
public void demo2() throws Exception {
Class class2=Class.forName("com.winking.fanshe.Goods");
Constructor c2=class2.getConstructor(Integer.class,String.class,Integer.class,String.class);
Goods goods2=(Goods) c2.newInstance(2,"我",5,"是我");
System.out.println(goods2);
}
}获得无参的构造方法demo2()方法运行会出现红色条,而demo1()是运行成功的。

3
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕阿莹
2019-08-05 18:43:08
同学你好,我在问答 https://class.imooc.com/course/qadetail/141475 中回答了同学的问题,请同学再看一下。
如果还是有问题,可以继续提问
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
3. Java 数据库开发与实战应用
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星