【发布时间】:2010-03-24 21:30:37
【问题描述】:
package reflection;
import java.io.*;
import java.lang.reflect.*;
class class0
{
public void writeout0()
{
System.out.println("class0");
}
}
class class1
{
public void writeout1()
{
System.out.println("class1");
}
}
class class2
{
public void writeout2()
{
System.out.println("class2");
}
}
class class3
{
public void run()
{
try
{
BufferedReader reader= new BufferedReader(new InputStreamReader
(System.in));
String line=reader.readLine();
Class cls=Class.forName(line);
//define method here
}
catch(Exception ee)
{
System.out.println("here "+ee);
}
}
public void writeout3()
{
System.out.println("class3");
}
}
class class4
{
public void writeout4()
{
System.out.println("class4");
}
}
class class5
{
public void writeout5()
{
System.out.println("class5");
}
}
class class6
{
public void writeout6()
{
System.out.println("class6");
}
}
class class7
{
public void writeout7()
{
System.out.println("class7");
}
}
class class8
{
public void writeout8()
{
System.out.println("class8");
}
}
class class9
{
public void writeout9()
{
System.out.println("class9");
}
}
class testclass {
public static void main(String[] args) {
System.out.println("Write class name : ");
class3 example=new class3();
example.run();
}
}
问题是; 第三个类将从控制台读取类的名称作为字符串。读取类名后,会自动动态生成该类并调用其writeout方法。如果该类没有从输入中读取,则不会被初始化。
但我不能再继续了; 3.class 我需要更多的东西,我该怎么办?
【问题讨论】:
-
我很高兴地意识到他的课程只有 10 个课程。
-
这是一个 Java 反射教程:java.sun.com/docs/books/tutorial/reflect 你可能会发现它很有用。
-
“生成该类”是什么意思?实例化该类的对象?
-
@Jacob:您不应该将
run方法放在类3 上,可以在测试类的main方法中使用相同的代码。 (Java 类名中的 BTW 按照约定以大写开头)
标签: java reflection