メソッド一覧を取得する
ちょっと該当クラスのメソッド一覧を取得する必要があったためサンプルコードを書いた。
サンプルコード
try { Class<?> clazz = Class.forName("java.lang.String"); String className = clazz.getName(); //Method[] methods = clazz.getMethods(); Method[] methods = clazz.getDeclaredMethods(); StringBuilder builder = new StringBuilder(); for (Method method : methods) { String methodName = method.getName(); builder.append(className).append("#"); builder.append(methodName).append("("); Class<?>[] parameterTypes = method.getParameterTypes(); for (int i = 0; i < parameterTypes.length; i++) { Class<?> parameterType = parameterTypes[i]; builder.append(parameterType.getName()); if (i + 1 < parameterTypes.length) { builder.append(", "); } } builder.append(")"); builder.append(System.getProperty("line.separator")); } System.out.println(builder.toString()); } catch (Exception e) { e.printStackTrace(); }
出力結果
java.lang.String#equals(java.lang.Object)
java.lang.String#toString()
java.lang.String#hashCode()
java.lang.String#compareTo(java.lang.String)
java.lang.String#compareTo(java.lang.Object)
java.lang.String#indexOf(int)
java.lang.String#indexOf(java.lang.String)
java.lang.String#indexOf([C, int, int, [C, int, int, int)
java.lang.String#indexOf(java.lang.String, int)
java.lang.String#indexOf(int, int)
java.lang.String#valueOf(java.lang.Object)
java.lang.String#valueOf(double)
java.lang.String#valueOf(float)
java.lang.String#valueOf(long)
java.lang.String#valueOf(int)
java.lang.String#valueOf(char)
java.lang.String#valueOf(boolean)
java.lang.String#valueOf([C, int, int)
java.lang.String#valueOf([C)
java.lang.String#checkBounds([B, int, int)
java.lang.String#length()
java.lang.String#isEmpty()
java.lang.String#charAt(int)
java.lang.String#codePointAt(int)
java.lang.String#codePointBefore(int)
java.lang.String#codePointCount(int, int)
java.lang.String#offsetByCodePoints(int, int)
java.lang.String#getChars([C, int)
java.lang.String#getChars(int, int, [C, int)
java.lang.String#getBytes(java.lang.String)
java.lang.String#getBytes(int, int, [B, int)
java.lang.String#getBytes(java.nio.charset.Charset)
java.lang.String#getBytes()
java.lang.String#contentEquals(java.lang.StringBuffer)
java.lang.String#contentEquals(java.lang.CharSequence)
java.lang.String#equalsIgnoreCase(java.lang.String)
java.lang.String#compareToIgnoreCase(java.lang.String)
java.lang.String#regionMatches(int, java.lang.String, int, int)
java.lang.String#regionMatches(boolean, int, java.lang.String, int, int)
java.lang.String#startsWith(java.lang.String, int)
java.lang.String#startsWith(java.lang.String)
java.lang.String#endsWith(java.lang.String)
java.lang.String#lastIndexOf(java.lang.String, int)
java.lang.String#lastIndexOf(int)
java.lang.String#lastIndexOf(int, int)
java.lang.String#lastIndexOf(java.lang.String)
java.lang.String#lastIndexOf([C, int, int, [C, int, int, int)
java.lang.String#substring(int, int)
java.lang.String#substring(int)
java.lang.String#subSequence(int, int)
java.lang.String#concat(java.lang.String)
java.lang.String#replace(java.lang.CharSequence, java.lang.CharSequence)
java.lang.String#replace(char, char)
java.lang.String#matches(java.lang.String)
java.lang.String#contains(java.lang.CharSequence)
java.lang.String#replaceFirst(java.lang.String, java.lang.String)
java.lang.String#replaceAll(java.lang.String, java.lang.String)
java.lang.String#split(java.lang.String)
java.lang.String#split(java.lang.String, int)
java.lang.String#toLowerCase()
java.lang.String#toLowerCase(java.util.Locale)
java.lang.String#toUpperCase(java.util.Locale)
java.lang.String#toUpperCase()
java.lang.String#trim()
java.lang.String#toCharArray()
java.lang.String#format(java.lang.String, [Ljava.lang.Object;)
java.lang.String#format(java.util.Locale, java.lang.String, [Ljava.lang.Object;)
java.lang.String#copyValueOf([C)
java.lang.String#copyValueOf([C, int, int)
java.lang.String#intern()
※2013/1/30 修正
- 親クラスのメソッドまですべて取得するgetMethods()を使用していたため、宣言されているメソッドのみを取得するgetDeclaredMethods()に変更しました。