利用java反射机制,通过一个对象获得完整的包名和类名

利用java反射机制,通过一个对象获得完整的包名和类名,第1张

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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9870981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存