繁体   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