Skip to content

Commit 8ff8cd8

Browse files
committed
Add vararg test
1 parent 6945931 commit 8ff8cd8

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

app/src/main/java/com/haoge/sample/easyandroid/activities/EasyReflectActivity.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import com.haoge.easyandroid.easy.EasyReflect
77
import com.haoge.easyandroid.easyFormat
88
import com.haoge.sample.easyandroid.BaseActivity
99
import com.haoge.sample.easyandroid.R
10+
import java.util.*
1011

1112
/**
1213
* @author haoge on 2018/5/22
@@ -102,6 +103,15 @@ class EasyReflectActivity:BaseActivity() {
102103
reflect.call("print", "自定义参数")
103104
}
104105

106+
@OnClick(R.id.callMethodWithVararg)
107+
fun callMethodWithVararg() {
108+
val reflect = EasyReflect.create(Test::class.java)
109+
// 调用只含有可变参数的方法
110+
reflect.call("withVararg", 1, arrayOf("This", "is", "WithVararg"))
111+
reflect.call("onlyVararg", arrayOf("Hello", "World", "onlyVararg"))
112+
reflect.instance(arrayOf("Hello", "World", "Constructor"))
113+
}
114+
105115
@OnClick(R.id.getStaticField)
106116
fun getStaticField() {
107117
val reflect = EasyReflect.create(Test::class.java)
@@ -124,6 +134,7 @@ class EasyReflectActivity:BaseActivity() {
124134
// 用于进行测试的类
125135
class Test private constructor(private val name:String){
126136
constructor():this("默认名字")
137+
constructor(vararg name:String):this(Arrays.toString(name))
127138

128139
override fun toString(): String {
129140
return "Test(name='$name')"
@@ -133,6 +144,14 @@ class Test private constructor(private val name:String){
133144
EasyLog.DEFAULT.e("Test的invoked方法被执行。参数为$name")
134145
}
135146

147+
fun onlyVararg(vararg name:String) {
148+
EasyLog.DEFAULT.d(name)
149+
}
150+
151+
fun withVararg(perfix:Int, vararg name:String) {
152+
EasyLog.DEFAULT.d("perfix = $perfix + name = $name")
153+
}
154+
136155
companion object {
137156
@JvmStatic
138157
private fun print(message:String) {

app/src/main/res/layout/activity_reflect.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@
6262
android:layout_width="match_parent"
6363
android:layout_height="wrap_content" />
6464

65+
<Button
66+
android:id="@+id/callMethodWithVararg"
67+
android:text="指定可变参数方法"
68+
android:layout_width="match_parent"
69+
android:layout_height="wrap_content" />
70+
6571
<Button
6672
android:id="@+id/callMethodWithReturnReflect"
6773
android:text="调用方法并根据返回值创建新EasyReflect对象返回"

0 commit comments

Comments
 (0)