怎么知道方法的参数有哪些类型呢?

简介: 怎么知道方法的参数有哪些类型呢?

如果你电脑上有android studio的话, 直接看类文件即可;


如果你不会android, 那么就用log

let paint = new Paint();
log(paint.setColor.toString());


方法签名就会打印出来

function setColor() {/*void setColor(int)void setColor(long)*/}


这个setColor有两个参数类型, 一个int, 一个long,

我们试试long能不能画出红色的矩形

paint['setColor(long)'](colors.parseColor("#ff0000"));



不行, 是白色的,


查安卓文档, 用pack试试

"ui";
ui.layout(
  <vertical bg="#ff00ff">
    <canvas id="board"></canvas>
  </vertical>
);
let left = 300;
let top = 300;
let right = 900;
let bottom = 900;
let paint = new Paint();
// 画笔设置 绿色
let green = android.graphics.Color.pack(colors.parseColor("#00ff00"));
paint["setColor(long)"](green);
// 设置画笔粗细
paint.setStrokeWidth(30);
ui.board.on("draw", function (canvas) {
  canvas.drawColor(android.graphics.Color.TRANSPARENT, android.graphics.PorterDuff.Mode.CLEAR);
  canvas.drawRect(left, top, right, bottom, paint);
});


没问题, long类型参数也可以设置颜色

以上代码的重点是颜色值换成long类型, 要用pack;

简单的colors.parseColor是不行的

// 画笔设置 绿色
let green = android.graphics.Color.pack(colors.parseColor("#00ff00"));
paint["setColor(long)"](green);


除了paint设置颜色要指定参数类型,

闹钟也要设置参数类型

importClass(android.provider.AlarmClock);
let i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.putExtra(AlarmClock.EXTRA_MESSAGE, "公众号: 牙叔教程");
i.putExtra(AlarmClock.EXTRA_HOUR, 12);
i["putExtra(java.lang.String,int)"](AlarmClock.EXTRA_HOUR, 8);
i["putExtra(java.lang.String,int)"](AlarmClock.EXTRA_MINUTES, 15);
i.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
app.startActivity(i);


重点是这句

i["putExtra(java.lang.String,int)"](AlarmClock.EXTRA_HOUR, 8);
i["putExtra(java.lang.String,int)"](AlarmClock.EXTRA_MINUTES, 15);


不指定参数类型的话, 你定的闹钟永远是24小时以后;

指定了参数类型, 闹钟的时间就设置正确了

测试环境

手机: Mi 11 Pro
Android版本: 12
Autojs版本: 4.1.1


名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问 --- 牙叔教程

声明

部分内容来自网络 本教程仅用于学习, 禁止用于其他用途






相关文章
|
3月前
如何处理构造函数中参数的默认值?
设置合理的默认值可以增加代码的灵活性和易用性,同时减少在调用构造函数时必须传递所有参数的要求。在处理默认值时,要确保其合理性和一致性,避免出现意外的行为或错误。你还想了解关于构造函数的其他方面吗?比如参数的验证等
113 58
|
5月前
Ceres库中参数理解
Ceres库中参数的理解,特别是仿函数中传参的含义,并提供了一个LeetCode问题的链接,该问题要求找出数组中和为目标值的两个数。
|
8月前
|
编译器 程序员 语音技术
C++的超20种函数类型分享
C++超20种函数类型:编程语言规定规则,编译器实现预定规则
|
JavaScript
🎖️typeScrpt中如何返回正确的类型?
条件返回类型确实是 TypeScript 中非常有用的强大功能,它允许您根据参数的类型为函数指定不同的返回类型,从而实现更强的类型安全性。
95 0
|
Java 编译器
重载的方法能否根据返回类型进行区分?
重载的方法不能根据返回类型进行区分。方法的重载是基于方法名称和参数列表来进行区分的,与返回类型无关。这是因为在Java中,编译器在确定要调用哪个重载方法时,仅根据传递给方法的参数来进行决策。
401 0
|
C++ 容器
【C++模板】非类型模板参数
【C++模板】非类型模板参数
125 0
self.doubleSpinBox.setGeometry(QtCore.QRect(20, 25, 101, 22))参数讲解
self.doubleSpinBox.setGeometry(QtCore.QRect(20, 25, 101, 22))参数讲解
338 0
|
Kotlin
【Kotlin】函数类型 ( 函数类型 | 带参数名称的参数列表 | 可空函数类型 | 复杂函数类型 | 带接收者函数类型 | 函数类型别名 | 函数类型实例化 | 函数调用 )(二)
【Kotlin】函数类型 ( 函数类型 | 带参数名称的参数列表 | 可空函数类型 | 复杂函数类型 | 带接收者函数类型 | 函数类型别名 | 函数类型实例化 | 函数调用 )(二)
378 0
|
C语言 Kotlin
【Kotlin】函数类型 ( 函数类型 | 带参数名称的参数列表 | 可空函数类型 | 复杂函数类型 | 带接收者函数类型 | 函数类型别名 | 函数类型实例化 | 函数调用 )(一)
【Kotlin】函数类型 ( 函数类型 | 带参数名称的参数列表 | 可空函数类型 | 复杂函数类型 | 带接收者函数类型 | 函数类型别名 | 函数类型实例化 | 函数调用 )(一)
280 0