如果当前类是数组,会返回 Object 中的 public 方法
System.out.println(Stream.of(int[].class.getMethods()).map(e -> { StringBuilder sb = new StringBuilder(); sb.append(Modifier.toString(e.getModifiers())).append(" "); sb.append(e.getReturnType().getName()).append(" "); sb.append(e.getName()); sb.append("(").append(Stream.of(e.getParameterTypes()).map(p -> p.getName()).collect(Collectors.joining(","))).append(")"); return sb.toString(); }).collect(Collectors.joining("\r\n"))); // public final void wait() // public final void wait(long,int) // public final native void wait(long) // public boolean equals(java.lang.Object) // public java.lang.String toString() // public native int hashCode() // public final native java.lang.Class getClass() // public final native void notify() // public final native void notifyAll()
原生数据类型 或 void,方法数组的长度为 0
System.out.println(int.class.getMethods().length); \\ 0 System.out.println(void.class.getMethods().length); \\ 0
返回类中的所有公共方法(含公共静态方法、公共桥接方法)和父类中的公共方法和实现的接口的公共方法(含默认方法和抽象方法,但不含静态方法)
/** * -- 本类方法 * public static void publicStaticMethod() * public void publicMethod() * public void publicMethodParent() * * -- 本类方法和桥方法(前提是桥接方法是 public),合成方法不行哦。合成方法访问权限是 default 的。 * public volatile java.lang.Number getBridgeReturn() * public java.lang.Integer getBridgeReturn() * public volatile void getBridge(java.lang.Object) * public void getBridge(java.lang.String) * * -- 父类方法 * public static void publicStaticMethodParent() * public abstract void publicAbstractMethod() * * -- 实现的接口方法 * public abstract void publicAbstractMethodMagic() * public void defaultMethodMagic() */ System.out.println(Stream.of(Child.class.getMethods()).map(e -> { StringBuilder sb = new StringBuilder(); sb.append(Modifier.toString(e.getModifiers())).append(" "); sb.append(e.getReturnType().getName()).append(" "); sb.append(e.getName()); sb.append("(").append(Stream.of(e.getParameterTypes()).map(p -> p.getName()).collect(Collectors.joining(","))).append(")"); return sb.toString(); }).collect(Collectors.joining("\r\n")));
abstract class Child extends Parent<String> implements Magic {
public class Inner {
public void print() {
privateMethod();
}
}
@Override
public Integer getBridgeReturn() {
return 0;
}
@Override
public void getBridge(String o) {
}
private void privateMethod() {
}
private static void privateStatusMethod() {
}
protected void protectedMethod() {
}
protected static void protectedStaticMethod() {
}
void defaultMethod() {
}
static void defaultStaticMethod() {
}
public void publicMethod() {
}
public static void publicStaticMethod() {
}
}
public abstract class Parent<T> {
public abstract void getBridge(T t);
public Number getBridgeReturn() {
return null;
}
abstract void defaultAbstractMethod();
protected abstract void protectedAbstractMethod();
public abstract void publicAbstractMethod();
private void privateMethodParent() {
}
private static void privateStatusMethodParent() {
}
protected void protectedMethodParent() {
}
protected static void protectedStaticMethodParent() {
}
void defaultMethodParent() {
}
static void defaultStaticMethodParent() {
}
public void publicMethodParent() {
}
public static void publicStaticMethodParent() {
}
}
public interface Magic {
default void defaultMethodMagic() {
}
static void staticMethodMagic() {
}
void publicAbstractMethodMagic();
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。