Hello Jonas!
Today I've converted a third party jar file using javapp, which went without problems so far (I only need to convert another jar file, because there is a dependency).
When compiling I noticed a few warnings though:
=== output ===
...
bukkit.inc(1668,5) Warning: Constructor should be public
bukkit.inc(1669,5) Warning: Constructor should be public
bukkit.inc(1749,14) Warning: An inherited method is hidden by "procedure
clone:OBLocation;"
bukkit.inc(1751,14) Warning: An inherited method is hidden by "procedure
clone:JLObject;"
bukkit.inc(2006,5) Warning: Constructor should be public
bukkit.inc(2007,5) Warning: Constructor should be public
bukkit.inc(2046,14) Warning: An inherited method is hidden by "procedure
next:JLObject;"
...=== output ===
1) as it seems to be a rather usual practice in Java, would it be possible to disable the "Constructor should be public" warnings if the target cpu is the JVM?
2) in the code I converted the classes often seem to "reintroduce" methods that are available in parent classes or implemented interfaces with different result types without declaring the original method though.
E.g.:
=== Java source begin ===
public class Location implements Cloneable {
...
@Override
public Location clone() {
....
}
...
}
=== Java source end ===
is converted to
=== Pascal source begin ===
OBLocation = class external 'org.bukkit' name 'Location' (JLObject, JLCloneable)
public
...
function clone(): OBLocation; overload; virtual;
... // <= other functions between
function clone(): JLObject; overload; virtual; // throwsjava.lang.CloneNotSupportedException
end;=== Pascal source end ===
Is this indeed correct? Does the compiler (or the JVM) indeed call the correct function in the end (in this case org.bukkit.Location.clone)?
[I have not tested what the compiler or the JVM does, I'm just curious at the moment regarding the warnings I get]
Regards,
Sven
