Java 泛型和类中方法的数量

Java 泛型和类中方法的数量,java,generics,reflection,Java,Generics,Reflection,我有一个疑问,我找不到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)

我有一个疑问,我找不到
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 "";
    }
}
getMethods
返回
SubString
类的数组中,有两个
someMethod
,一个带有签名
可序列化
,另一个带有签名
字符串
。即使在
公布的方法中
两者都存在


我怎样才能把那些不可调用的分开呢?

不可调用的被标记为合成方法,你可以用
method.isSynthetic()检查它

根据:

七,。Java编译器引入的任何构造如果在源代码中没有相应的构造,则必须标记为合成,但默认构造函数、类初始化方法以及Enum类的方法的值和valueOf除外

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
}