簡體   English   中英

獲取通用名稱(T in <T extends… > )在Java中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM