public static void main(String[] args) {
- BigInteger bi = new BigInteger("-1");
- System.out.println(bi);
+ //BigInteger bi = new BigInteger("-1");
+ //System.out.println(bi);
- /* TODO: Enumerate all methods in Class.class
- Method[] methods = Class.class.getMethods();
+ /* TODO: Enumerate all methods in Class.class */
+ Method[] methods = Collection.class.getMethods();
for(Method mth : methods) {
- //System.out.println("===========================");
+ System.out.println("===========================");
//System.out.println("Method: " + mth.getName());
Type[] parameters = mth.getGenericParameterTypes();
for (int i = 0; i < parameters.length; i++) {
System.out.println();
Type returnType = mth.getGenericReturnType();
System.out.println(returnType + "\n");
- }*/
+ }
- Method[] methods = Collection.class.getMethods();
+ /*Method[] methods = Collection.class.getMethods();
// Method[] methods = Class.class.getMethods();
Method method = null;
for(Method meth : methods) {
Type returnType = meth.getGenericReturnType();
System.out.println(returnType);
System.out.println("===========================");
- }
+ }*/
/* TODO: This is an excerpt of the BigInteger library
int radix = 10;
System.out.println(interfaces[i]);
}*/
- /*
- Method[] methods = Collection.class.getMethods();
+
+ /*Method[] methods = Map.class.getMethods();
Method method = null;
for(Method mth : methods) {
- if (mth.getName().equals("toArray")) {
+ if (mth.getName().equals("putAll")) {
//if (mth.getName().equals("isAssignableFrom")) {
//if (mth.getName().equals("getSuperclass")) {
method = mth;
int pos = signature.indexOf('<', 0);
if (pos == -1)
return new String[0];
+
+ pos = pos + 1;
ArrayList<String> typeVarNames = new ArrayList<>();
while (pos < signature.length()) {
String typeVarName = "";
+ // Try comma first
int comma = signature.indexOf(',', pos);
if (comma == -1) {
- int closing = signature.lastIndexOf('>', signature.length());
- typeVarName = signature.substring(pos + 1, closing);
- pos = signature.length();
+ // If not comma then perhaps semicolon
+ int semicolon = signature.indexOf(';', pos);
+ if (semicolon == -1) {
+ int closing = signature.lastIndexOf('>', signature.length());
+ typeVarName = signature.substring(pos, closing);
+ pos = signature.length();
+ } else {
+ typeVarName = signature.substring(pos, semicolon);
+ pos = semicolon + 1;
+ }
} else {
- typeVarName = signature.substring(pos + 1, comma);
+ typeVarName = signature.substring(pos, comma);
pos = comma + 1;
}
- typeVarNames.add(typeVarName);
+ typeVarNames.add(typeVarName.trim());
}
String[] arrTypeVarNames = new String[typeVarNames.size()];