Я нахожусь в процессе создания приложения, но наткнулся на проблему.
Я создаю программу, которая будет генерировать файл .java в зависимости от ввода пользователя.В программе вы сможете выбрать пользовательские интерфейсы API (хотя не могу предоставить их вам).После того, как вы выбрали вызов API, вам необходимо указать входные данные для этого метода.Вы также можете указать другой вызов API в качестве входных данных для текущего параметра.Я только хочу показать вызовы API, которые обеспечивают правильное возвращаемое значение в качестве входных данных для выбранного вызова API.Здесь проблема.Я могу определить тип ввода для параметров выбранных вызовов API, но я не могу определить тип для параметра classValue, предоставленного для listAPICallsWithReturnValue (...).функция call.getMethod () возвращает объект java.lang.reflect.Method.
Я надеюсь, вы все понимаете, что я имею в виду ...:)
public void displayParameterDialogs(APICall call) {
JDialogMethodParameters dialog = new JDialogMethodParameters(mainframe, true);
for (int i = 0; i < call.getMethod().getParameterTypes().length; i++) {
dialog.init(i, call.getMethod().getParameterTypes()[i]);
dialog.setVisible(true);
}
}
//dialog class
public void init(int parameterIndex, Class parameterType) {
this.jLabelInfo.setText("Data for input parameter: " + parameterIndex);
DefaultComboBoxModel cmodel = new DefaultComboBoxModel();
for (APICall call : TestFactory.getInstance().listAPICallsWithReturnValue(parameterType)) {
cmodel.addElement(call);
}
this.jComboBox1.setModel(cmodel);
}
public APICall[] listAPICallsWithReturnValue(Class<?> classValue) {
APICall[] calls;
Vector<APICall> temp = new Vector<APICall>();
Method[] methods = TestSuite.class.getMethods();
for (Method method : methods) {
System.out.println(method.getReturnType().getName());
System.out.println(classValue.getClass().getName());
System.out.println(classValue.toString());
if (method.getReturnType().getCanonicalName().equals(classValue.toString())) {
temp.add(new APICall(method));
}
}
calls = new APICall[temp.size()];
return temp.toArray(calls);
}