gpt4 book ai didi

java - 如何在Java中使用通用接口(interface)获取实现类中的方法

转载 作者:太空狗 更新时间:2023-10-29 22:51:42 25 4
gpt4 key购买 nike

我有一个通用接口(interface)和一个实现它的类:

import java.util.Arrays;

interface Interface<T> {
void doSomething(T element);
}

class StringImpl implements Interface<String> {
@Override
public void doSomething(String element) {
System.out.println("StringImpl: doSomething");
}
}

public class Main {
public static void main(String... args) {
System.out.println(Arrays.toString(StringImpl.class.getDeclaredMethods()));
}
}

结果是

[public void com.ra.StringImpl.doSomething(java.lang.String), 
public void com.ra.StringImpl.doSomething(java.lang.Object)]

但实际上,我只想要实现版本:

public void com.ra.StringImpl.doSomething(java.lang.String)

有什么方便的方法可以实现吗?

最佳答案

过滤掉bridge methods :

Method[] methods = Arrays.stream(StringImpl.class.getDeclaredMethods())
.filter(m -> !m.isBridge())
.toArray(Method[]::new);

关于java - 如何在Java中使用通用接口(interface)获取实现类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50332314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com