gpt4 book ai didi

java - 类中的泛型和方法数量

转载 作者:搜寻专家 更新时间:2023-11-01 02:26:50 24 4
gpt4 key购买 nike

我有疑问,我找不到 Java 规范语言 的定义位置(我确定是这样)。

我有这个层次结构:

public interface Top<T extends Serializable>
{
public String someMethod(T arg);
}

public class SubString implements Top<String>
{
@Override
public String someMethod(final String arg)
{
return "";
}
}

public class SubSerializable implements Top<Serializable>
{
@Override
public String someMethod(final Serializable arg)
{
return "";
}
}

然后我执行这段代码:

public static void main(final String[] args)
{
System.out.println(SubString.class.getMethods().length); // outputs 11
System.out.println(SubString.class.getDeclaredMethods().length); // outputs 2
System.out.println(SubSerializable.class.getMethods().length); // outputs 10
System.out.println(SubSerializable.class.getDeclaredMethods().length); // outputs 1
}

SubString 类的 getMethods 返回数组中有两个 someMethod,一个带有签名 Serializable 和一个带有签名 String。即使在 declaredMethods 中,两者都存在。

我怎么能拆开那些不是“可调用”的?

最佳答案

不可调用的标记为合成方法,可以通过Method.isSynthetic()查看。

根据 JLS 13.1. The Form of a Binary :

7. Any constructs introduced by a Java compiler that do not have a corresponding construct in the source code must be marked as synthetic, except for default constructors, the class initialization method, and the values and valueOf methods of the Enum class.

关于java - 类中的泛型和方法数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20517526/

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