代码为何总是报错,是Class 或 Object类有什么问题吗

来源:1-1 介绍反射及作用

平淡无奇很累

2021-03-08 19:42:09

相关代码:package com.rocky.test;

import com.rocky.entity.Goods;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class GoodsReflectTest {
public static void main(String[] args) {
try {
Class goodsClass = Class.forName("com.rocky.entity.Goods");
Constructor constructor=goodsClass.getConstructor(new Class[]{
Integer.class, String.class, Float.class, String.class});

Goods goods1 = (Goods) constructor.newInstance(new java.lang.Object[] {10, "手机", 3000, "超长待机"});
Method method = goodsClass.getMethod("display", new Class[]{String.class});
Goods goods2=(Goods) method.invoke(new Object[] {"haha"});
//Method method=goodsClass.getMethod("display",String.class);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}

}
}

相关截图:

http://img.mukewang.com/climg/60460d8e0900e3ee24340310.jpg

写回答

1回答

好帮手慕阿满

2021-03-09

同学你好,报错提示找不到Goods的带参构造方法,如:

http://img.mukewang.com/climg/6046dd4409b0ccd217700159.jpg

建议同学查看一下Goods类中是否有如下的构造方法,如:

http://img.mukewang.com/climg/6046dd8a09f2643108220186.jpg

如果没有,建议同学添加再试试。

如果价格是Float类型,在实例化时,应该传入Float类型3000f。

http://img.mukewang.com/climg/6046ddc6096edd2207610062.jpg

祝学习愉快~

0

0 学习 · 16556 问题

查看课程