java - 具有类型安全类参数的通用(非静态)方法,它是如何工作的?

标签 java class generics types static

这是我的代码,Control 是一个 swt-ui-widget,方法 find 应该返回一个类型为“clazz”的组件。我知道如何用静态方法做到这一点,但如果它是一个实例方法,它就不起作用。

package org.uilib.swt.templating;

import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Control;

public class Component<T extends Control> {

    public final String name;
    public final T control;

    public Component(String name, T control) {
        this.name = name;
        this.control = control;
    }

    public String getName() {
        return name;
    }

    public T getControl() {
        return control;
    }

    public Component<E> find(String query, Class<E extends Control> clazz) {

        return null;
    }
}

我想做以下事情:

Component<Button> x = this.find("asd", Button.class);

最佳答案

据我了解,您需要以下通用方法:

public <E extends Control> Component<E> find(String query, Class<E> clazz) { ... }

关于java - 具有类型安全类参数的通用(非静态)方法,它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8446077/

相关文章:

java - map 上多个标记的实时动画

c++ - 如何在 NACHOS (C++) 中创建类

java - Java 中的复杂泛型

generics - Rust:为什么不存储类型时泛型会继承大小大小?

java - Java中如何声明泛型方法?

java - 使用 opencsv 写入 csv 时如何保留空值

java - (应使用 insert ="false"update ="false"进行映射)

java - 使用正则表达式匹配特定运算符

java - 有没有办法让 Arraylist 元素等于类构造函数?

ios - 扩展中无法识别 Swift 类属性