B4J Question GetType on Main module

Chris Lee

Member
Licensed User
When calling GetType on modules such as the Main module the value returned is 'java.lang.class'.

Does anyone know a way of obtaining more information about the class such as it's name?
 

stevel05

Expert
Licensed User
Will this suffice?

B4X:
Log(Me)
Returns : "class b4j.example.main" on the main module
 
Last edited:

Enrique Gonzalez R

Well-Known Member
Licensed User
Will this suffice?

B4X:
Log(Me)
Returns : "class b4j.example.main" on the main module
but Log does not return a value, it will be only for debugging pourposes, but if Log actually calls the .toString function then i would add.

B4X:
sub asJo as JavaObject
return me
end sub

asjo.runmethod("toString",null)
i wrote it without testing.
 

Erel

Administrator
Staff member
Licensed User
You probably should use classes instead of static code modules.
 

LucaMs

Expert
Licensed User
pensandoMini.png


I'm lost, here.

I suppose you want to know the name of your custom class by getting it from an instance of your class.

Simply using the suggestions, I get useless values:
B4X:
#Region PROPERTIES

Public Sub getClassType As String
    Dim s As String = Me
    Return s
End Sub
Using the property above I get this stuff:
Class Type: [fx=anywheresoftware.b4j.objects.JFX@1a579872, mvalue=, main=null[/COLOR]

I found answers on stackoverflow.com, like this one:
B4X:
public class GenericClass<T> {

     private final Class<T> type;

     public GenericClass(Class<T> type) {
          this.type = type;
     }

     public Class<T> getMyType() {
         return this.type;
     }
}
that I wouldn't know how to use in b4a; anyway it doesn't seem very different from the solution proposed by @Enrique Gonzalez R and I don't know what result it would return (I fear that it would not be different).


P.S. Reading your first post again (and better) I think that now you write
Dim s As String = Me
Log(s)
directly in the Main class module, getting:
class b4j.example.main
I don't know what it could be useful for but that's ok.


P.P.S.
Why "sometimes" I am so stupid? :D (please, do not answer :p).
If I wanted the class name of a my custom class, I could simply write it directly in my getClassType property!
B4X:
#Region PROPERTIES

Public Sub getClassType As String
    Return 'Here my custom class name'
End Sub
 
Last edited:
Top