mirror of
https://github.com/revanced/smali.git
synced 2025-04-29 22:24:26 +02:00
Add an example showing how methods can be overriden based on return value
This commit is contained in:
parent
049bba5d98
commit
f8637cedd5
50
examples/MethodOverloading/Main.smali
Normal file
50
examples/MethodOverloading/Main.smali
Normal file
@ -0,0 +1,50 @@
|
||||
.class public LMain;
|
||||
.super Ljava/lang/Object;
|
||||
|
||||
#expected output:
|
||||
#returning a string
|
||||
#42
|
||||
|
||||
.method public constructor <init>()V
|
||||
.registers 1
|
||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public static main([Ljava/lang/String;)V
|
||||
.registers 4
|
||||
|
||||
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
||||
|
||||
new-instance v1, LMain;
|
||||
invoke-direct {v1}, LMain;-><init>()V
|
||||
invoke-virtual {v1}, LMain;->overloadTest()Ljava/lang/String;
|
||||
move-result-object v2
|
||||
|
||||
invoke-virtual {v0, v2}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
|
||||
|
||||
invoke-virtual {v1}, LMain;->overloadTest()I
|
||||
move-result v2
|
||||
|
||||
invoke-static {v2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
|
||||
move-result-object v2
|
||||
|
||||
invoke-virtual {v0, v2}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
|
||||
.method public overloadTest()Ljava/lang/String;
|
||||
.registers 1
|
||||
|
||||
const-string v0, "returning a string"
|
||||
return-object v0
|
||||
.end method
|
||||
|
||||
.method public overloadTest()I
|
||||
.registers 1
|
||||
|
||||
const v0, 42
|
||||
return v0
|
||||
.end method
|
Loading…
x
Reference in New Issue
Block a user