日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 所有子类_java 查找类的所有子类

發布時間:2023/12/2 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 所有子类_java 查找类的所有子类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

package _02;

import java.io.File;

import java.net.URL;

public class MainTest_FindAllSubClass {

public static void main(String[] args) {

Class> clazz = MainTest_FindAllSubClass.class;

// 定位到當前的包路徑

// URL url = Toy.class.getResource("");

// 定位到bin目錄

URL url = clazz.getResource("/");

System.out.println(url);

String fileName = url.getFile();

System.out.println(fileName);

String pathName = fileName.replaceFirst("/", "");

System.out.println(pathName);

File rootFile = new File(pathName);

setSubList(rootFile, rootFile.getPath() + "\\", clazz);

}

/**

* 遍歷bin目錄下所有文件

* 若是文件夾,則遞歸將文件夾內文件添加到文件數組

* 若是文件,則將文件加載并強制類型轉換為要查找子類的父類,轉換無異常,說明加載類是父類的子類

* (當遍歷到類自身時,此處認為也屬于子類,當然這是我的一廂情愿,我肯定不告訴你--〉我嫌麻煩。。

* 不過我還是加上了判斷--〉自我要求比較高。。

* )

* */

public static void setSubList(File rootFile, String parentDirectory,

Class parentClass) {

if (rootFile.isDirectory()) {

File[] files = rootFile.listFiles();

for (File file : files) {

setSubList(file, parentDirectory, parentClass);

}

} else {

String className = null;

try {

if (rootFile.getPath().indexOf(".class") != -1) {

className = rootFile.getPath().replace(parentDirectory, "")

.replace(".class", "").replace("\\", ".");

Class> classObject = Class.forName(className);

classObject.asSubclass(parentClass);

// 要么是子類,要么是類本身

if (! className.equals(parentClass.getCanonicalName())){

System.out

.println(className + " extends " + parentClass);

}else{

System.out

.println(className + " is " + parentClass);

}

}

} catch (ClassNotFoundException e) {

System.err.println("can not find " + className);

} catch (ClassCastException e) {

System.err.println(className + " do not extends " + parentClass);

}

}

}

}

// 測試

class Sub1 extends MainTest_FindAllSubClass {

}

//測試

class Sub2 extends MainTest_FindAllSubClass {

}

原文:http://www.cnblogs.com/cnblogszs/p/6033494.html

總結

以上是生活随笔為你收集整理的java 所有子类_java 查找类的所有子类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。