當前位置:首頁 » 編程語言 » java獲取當前類名

java獲取當前類名

發布時間: 2022-08-11 10:23:59

A. 如何在java方法中獲得當前方法的名稱

在java方法中獲得當前方法的名稱方法:

一、獲得當前類名:

Java代碼

  • this.getClass().getName();

  • 二、獲得當前方法名臣:
    JDK1.4

    Java代碼

  • newException().getStackTrace()[i].getMethodName();//其中i=0就是當前的類的方法名字;i==1就是調用者的方法

  • JDK1.5之後可用

    Java代碼

  • Thread.currentThread().getStackTrace()[1].getMethodName();//具體使用數組的那個元素和JVM的實現有關,我在SUNJDK6下面測試的是第二個元素,具體說明可以查看Thread.getStackTrace方法的javadoc

B. java如何在main方法中得到(列印)其所在類的類名

不創建實例?這個要求太奇怪了。也許只有jvm知道吧。能問一下為什麼要這么做?

或者你可以用這個trick:

public class Test{
public static void main(String[] args) {
try {
System.out.println(args[100000]);
} catch (Exception e) {
System.out.println(e.getStackTrace()[0].toString().split("\\.main\\(")[0]);
}
}
}

C. java怎麼獲取src目錄下所有的包名,類名,方法名 以及通過一個類名獲得該類下的所有方法名

可以使用以下代碼來獲取src目錄下所有的包名,類名,方法名 以及通過一個類名獲得該類下的所有方法名。
import java.io.File;
import java.lang.reflect.Method;
public class LoopApp {
public static void main(String[] args) throws Exception {
String packageName = "";
File root = new File(System.getProperty("user.dir") + "\\src");
loop(root, packageName);
}
public static void loop(File folder, String packageName) throws Exception {
File[] files = folder.listFiles();
for (int fileIndex = 0; fileIndex < files.length; fileIndex++) {
File file = files[fileIndex];
if (file.isDirectory()) {
loop(file, packageName + file.getName() + ".");
} else {
listMethodNames(file.getName(), packageName);
}
}
}
public static void listMethodNames(String filename, String packageName) {
try {
String name = filename.substring(0, filename.length() - 5);
Object obj = Class.forName(packageName + name);
Method[] methods = obj.getClass().getDeclaredMethods();
System.out.println(filename);
for (int i = 0; i < methods.length; i++) {
System.out.println("\t" + methods[i].getName());
}
} catch (Exception e) {
System.out.println("exception = " + e.getLocalizedMessage());
}
}
}

D. java中用super來獲取類名為什麼得到的是派生類的類名

這里要說明一下,super和this的區別,this表示當前對象的指針(或叫引用),super是一個java關鍵字,用於訪問父類的成員和方法。
所以調用的getClass()的確是父類方法,但是當前對象已經是子類了,而不是父類,你必須明白,super不代表父類對象。
如果你想要得到父類對象,需要通過反射機制的到,代碼如下:
Class c = 子類.class;
c.getSuperclass().getName();
這解釋明白么?還有什麼疑問?

E. JAVA 獲取class對象 類名.class Class.forName()兩種方法什麼情況下使用 為什麼

.class 是獲得當前對象的句柄。 class.forName()用於反射,java虛擬機通過class.forName(class 名) 尋找到 名字為class 的 類文件裝載進 虛擬機。 object ob=clsss.forName("class 名").instences(); 相當於實例化一個對象

F. 我剛學java,一個java程序的兩個問題,很簡單,看懂的回答,目的是給三個職業發工資

this.getClass().getName()獲取當前類的類名,包含包名,如果你只想得到類名那就做個替換:
this.getClass().getName().replace("com.wy.test2.", "")
父類Staff有三個子類分別是Manager, Engineer, Worker,這三個子類實際上都繼承了父類方法paySalary(),因此在每個子類調用paySalary()方法時,this.getClass().getName()得到的是子類類名。

G. java 獲取當前的對象名

  1. this.getClass().getSimpleName() //包名+類名

  2. this.toString() //指針地址

  3. this代表當前對象

H. Java中怎樣得到當前類名

把this改成
new 類名().getClass().getName()就可以了

I. java中getClass().getName()有什麼作用

getClass返回的是Class對象,這個對象用來描述你現在所使用的對象的類信息,比如有
Class A,
A a;
a.getClass();
將返回a對象的信息描述,當然這些信息都是動態的,比如a對象的某個屬性有什麼值阿等等,你可以在程序運行時通過寫代碼動態的獲得這些信息。getClass().getName()是用來返回Class對象所代表的具體對象的名稱。

J. java怎麼用代碼獲取類所在的包名

String packageName = A.class.getPackage().getName();
或者:
packageName = new A().getClass().getPackeage().getName();
即可獲得包名了。

熱點內容
密碼圈怎麼玩 發布:2025-07-03 13:10:15 瀏覽:535
mc伺服器搭建視頻 發布:2025-07-03 12:58:13 瀏覽:43
如何用mac管理windows伺服器 發布:2025-07-03 12:41:16 瀏覽:383
php圖片上傳系統 發布:2025-07-03 12:36:00 瀏覽:927
我的世界伺服器電腦手機都可以進 發布:2025-07-03 12:35:58 瀏覽:698
電信星卡19元學校網密碼多少 發布:2025-07-03 12:34:39 瀏覽:363
java二進制讀取 發布:2025-07-03 11:55:52 瀏覽:742
我的世界伺服器記分板排版 發布:2025-07-03 11:39:22 瀏覽:571
安卓前期用什麼處理器 發布:2025-07-03 11:37:54 瀏覽:872
如何更換安卓手機內存 發布:2025-07-03 11:18:52 瀏覽:57