学习反射 使用forname()函数报错:

it2024-02-18  67

学习反射 使用forname()函数报错: java.lang.ClassNotFoundException: example

代码: 有两个类 demo和example同属于 a包 第一个类: package a;

public class example { public int id; public String s; private double price; }

第二个类 package a;

import java.lang.reflect.Field; import java.lang.reflect.Modifier;

public class demo {

public static void main(String[] args) { // TODO Auto-generated method stub try { Class c = Class.forName("example"); Field fs[] = c.getFields(); for(Field f : fs){ System.out.println(Modifier.toString(f.getModifiers()) ); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

报错原因是因为foname函数后边括号里需要是包名加类名 这里写成 Class c = Class.forName(“a.example”);就可以类。

后来修改后,运行不出结果,是因为之前example类下的id 和 s 前边没有加public修饰符。

最新回复(0)