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
}