Febers

Febers

V2EX 第 263206 号会员,加入于 2017-10-28 21:17:39 +08:00
今日活跃度排名 29469
根据 Febers 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
Febers 最近回复了
体验很棒,有考虑增加一些常用的图形如矩形、圆形吗,用来画产品图感觉会很棒
253 天前
回复了 libasten 创建的主题 音乐 现在听歌软件 QQ 音乐一家独大了吧?
@bs10081 #90 翻一次墙回内地就可以,三天之后会重新检测,再翻一次,循环♻️往复
2022-07-11 18:52:25 +08:00
回复了 graetdk 创建的主题 分享创造 新品发布:支持中文的 AI 生成绘画作品工具
令人无语,倒计时走完之后,重新从一个小时开始了,逗人玩么
2021-06-26 13:25:40 +08:00
回复了 juziss 创建的主题 教育 选择成电还是北邮的计算机?
学校差别不大,基本上属于选城市了。成都上学,北京工作,个人感觉北京这城市简直不是人能待的,如果是南方人强烈建议去成都
2020-04-28 12:59:45 +08:00
回复了 atfeel 创建的主题 Android Java 能把代码块当参数传递到其他方法并执行吗?
@no1xsyzy #28 😮可能因为写起来比较好理解?
2020-04-28 12:21:33 +08:00
回复了 atfeel 创建的主题 Android Java 能把代码块当参数传递到其他方法并执行吗?
如果要深究到语言特性的话,对于这样的需求,Java 字节码层面支持是 invokedynamic 指令的引入,语法层面的支持是 Lambda 的引入
2020-04-28 12:14:40 +08:00
回复了 atfeel 创建的主题 Android Java 能把代码块当参数传递到其他方法并执行吗?
个人觉得 Kotlin 的很多东西很有趣,学习 Kotlin 反编译之后的 Java 代码,基本上就是用 Java 如何实现 Kotlin 特性的工业化答案。
这个问题很多同学都给了答案,重点在于:Java 是纯面向对象语言,一切方法参数都是对象(基本数据类型不谈),而匿名内部类的存在让我们可以使用 自定义方法的对象,虽然写法看起来比较啰嗦;引入 Lambda 之后的 Java 代码写起来更“函数式”了,但本质上还是使用对象的概念
2020-04-28 12:03:49 +08:00
回复了 atfeel 创建的主题 Android Java 能把代码块当参数传递到其他方法并执行吗?
@atfeel #22
Kotlin 代码的本质是,定义一个类型属于 () -> Unit 的变量,然后动态赋值,通过 invoke 方法执行,反编译 Kotlin 的字节码之后可以发现,其对应的 Java 类型是 Function0 接口,位于 kotlin.jvm.functions,仿照其写法

//使用了 @FunctionalInterface 以使用 Lambda
@FunctionalInterface
interface Action {
void invoke();
}

//定义与赋值
Action action;
action = () -> {
//some code 1
};
//非 Lambda 写法
action = new Action() {
@Override
public void invoke() {
//some code 2
}
};

//调用
action1.invoke();

使用 Runnable 的原因很简单,它是系统定义的一个 FunctionalInterface,而且很普通,调用 run 方法也跟多线程没有关系,把 Runnable 替换成上面的 Action,就可以少写一个接口
2020-04-27 21:46:31 +08:00
回复了 atfeel 创建的主题 Android Java 能把代码块当参数传递到其他方法并执行吗?
遇到过同样的需求,在没有改写成 Kotlin 之前,使用的是 Runnable 然后手动调 run ;改写成 Kotlin 之后看起来还挺酷的:
//定义
var action: ()->Unit = { }
//赋值
action = {
//some code
}
//调用
action.invoke() //action()
2019-12-12 11:52:54 +08:00
回复了 Febers 创建的主题 Java Java 中通过 ClassName.super 获取直接父类的引用范围的疑惑
@KentY #15 意思是 在 Bird 的非静态方法中可以调用 Bird.super.action() 实现调用父类方法的目的,但是在其他地方,想调用就不行
比如在 Main 中,第一种调用形式,Bird.super.action 明显不行,因为 Bird 没有实例,无法调用它自身或者它父类(如果有的话)的 action 这一个实例方法;第二种调用形式,Bird bird = new Bird(); bird.super.action(),报错,才有了我的疑惑
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1072 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 23:13 · PVG 07:13 · LAX 16:13 · JFK 19:13
Developed with CodeLauncher
♥ Do have faith in what you're doing.