[英]Get the name of the Generic (T in <T extends… >) in java
我有一個這樣的類和方法:
public class Runner<T extends Domain> implements Runnable {
public void run() {
...
Runtime.getRuntime().exec(...)
...
}
我需要執行該文件並以T作為參數將T的類型傳遞給它(或其他允許我在執行的文件中區分不同域的字符串,但是T是擴展類Domain
的類,其中Domain
是一個抽象類。
我考慮過添加一個靜態方法來返回類的名稱,然后調用T.getName();
,但這不能在抽象類中完成。
我該怎么辦?
謝謝!
您可以為您的類創建構造函數,在其中可以傳遞Class
對象並使用它:
private Class<T> clazz;
public Runner(Class<T> clazz) {
this.clazz = clazz;
}
// ...
public void runFile() {
// do smth with
clazz.getName()
}
將類型傳遞給類的構造函數:
public class Runner<T extends Domain> implements Runnable {
private Class<T> clazz;
public Runner(Class<T> clazz) {
this.clazz = clazz;
}
public void run() {
// Use your class here
String name = clazz.getName();
}
}
private void runFile(Class<T> classOfT) {...}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.