Creating Java objects: Error -105107 Data type is not supported by Java interface.

You may receive a subject error or a similar one (Error -105104 Undefined constructor) while trying to call a method with a JAVA class as a parameter in 4GL program:

Compiling file 'test.4gl'Executing command: "C:\Program Files\Querix\Lycia/bin/qfgl" --xml-errors -d informix -o "C:\Users\user\workspace\qx\output\test.4o" -e UTF-8 "C:\Users\user\workspace\qx\source\test.4gl" --check-kw in working directory C:\Users\user\workspace\rfhgfh\source Executing command finished. Exit code: 1 <problem><tool name="qfgl"/><source file="C:/Users/user/workspace/qx/source/test.4gl" first_line="9" last_line="9" first_column="15" last_column="42"/><error><code>-105104</code><message>Undefined constructor. com.querix.dynamicreport.core.TestDynamicReport(com.querix.dynamicreport.report.TestReport) </message></error></problem> Compilation failed

Possible solution

  1. Create an additional variable (s_class in below example) of the java.lang.Class type and assign your java class type to it let s_class = s.getClass() Use this variable as a parameter for the method to which you want to pass a java class:

import java com.querix.dynamicreport.report.TestReport import java com.querix.dynamicreport.core.TestDynamicReport import java java.lang.Class function test() define s com.querix.dynamicreport.report.TestReport define report TestDynamicReport define s_class java.lang.Class let s = TestReport.create() let s_class = s.getClass() let report = TestDynamicReport.create(s_class) end function