1、Test t = new Test()Class clazz = tgetClass()Systemoutprintln(clazzgetCanonicalName())Systemoutprintln(clazzgetSimpleName())
2、public class TestReflect {public static void main(String[] args) throws Exception {TestReflect testReflect = new TestReflect()Systemoutprintln(testReflectgetClass()getName())// 结果 netxsoftlabbaikeTestReflect}}
3、Java程序
思路就是反射。利用反射你可以使用类或者实例的所有公共成员,前提是知道类的命名空间及名称,详细范例请见以下代码或者msdn。
class MyClass
{
public int myInt = 0;
public string myString = null;
public MyClass()
{
}
public void Myfunction()
{
}
}
class Type_GetMembers
{
public static void Main()
{
try
{
MyClass myObject = new MyClass();
MemberInfo[] myMemberInfo;
// Get the type of 'MyClass'
Type myType = myObjectGetType();
// Get the information related to all public member's of 'MyClass'
myMemberInfo = myTypeGetMembers();
ConsoleWriteLine( "\nThe members of class '{0}' are :\n", myType);
for (int i =0 ; i < myMemberInfoLength ; i++)
{
// Display name and type of the concerned member
ConsoleWriteLine( "'{0}' is a {1}", myMemberInfo[i]Name, myMemberInfo[i]MemberType);
}
}
catch(SecurityException e)
{
ConsoleWriteLine("Exception : " + eMessage );
}
}
}
首先得到ServletContext对象(jsp中的application)
其次得到WEB项目的的真实路径
String add=applicationgetRealPath("/"); super指得是GenericServlet类
最后,可以得到任意一个网站文件的地址:
add+requestgetServletPath();
可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。
import javaioFile;
import javalangreflectMethod;
public class LoopApp {
public static void main(String[] args) throws Exception {
String packageName = "";
File root = new File(SystemgetProperty("userdir") + "\\src");
loop(root, packageName);
}
public static void loop(File folder, String packageName) throws Exception {
File[] files = folderlistFiles();
for (int fileIndex = 0; fileIndex < fileslength; fileIndex++) {
File file = files[fileIndex];
if (fileisDirectory()) {
loop(file, packageName + filegetName() + "");
} else {
listMethodNames(filegetName(), packageName);
}
}
}
public static void listMethodNames(String filename, String packageName) {
try {
String name = filenamesubstring(0, filenamelength() - 5);
Object obj = ClassforName(packageName + name);
Method[] methods = objgetClass()getDeclaredMethods();
Systemoutprintln(filename);
for (int i = 0; i < methodslength; i++) {
Systemoutprintln("\t" + methods[i]getName());
}
} catch (Exception e) {
Systemoutprintln("exception = " + egetLocalizedMessage());
}
}
}
以上就是关于利用java反射机制,通过一个对象获得完整的包名和类名全部的内容,包括:利用java反射机制,通过一个对象获得完整的包名和类名、c#获取到字符串路径(路径是某个类的路径),能调用这个类里面的方、我想在java类里获取web项目的路径,比如我将项目放在D:/,项目名称为test,我想得到D:/test路径,在java等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)