Sub AppStart (Args() As String)
' works as expected
Dim jo As JavaObject
jo.InitializeNewInstance("b4j.example.main$NormalClass",Null)
Log(jo)
Log(jo.RunMethod("getName",Null))
' works because sneaky extends MyProtectedClass
Dim jo1 As JavaObject
jo1.InitializeNewInstance("b4j.example.main$Sneaky",Null)
Log(jo1)
Log(jo1.RunMethod("getName",Null))
' doesn't work as class is protected
Dim jo2 As JavaObject
Try
jo2.InitializeNewInstance("b4j.example.main$MyProtectedClass",Null)
Log(jo2)
Log(jo2.RunMethod("getName",Null))
Catch
Log(LastException)
End Try
End Sub
#if java
protected static class MyProtectedClass{
protected String name = "fred";
protected String getName(){
return name;
}
}
public static class Sneaky extends MyProtectedClass{
// name is not defined as it exists in MyProtectedClass
public String getName(){
return name;
}
}
public static class NormalClass{
String name = "Jimmy";
public String getName(){
return name;
}
}
#End If