duangsuse::Echo
713 subscribers
4.24K photos
127 videos
583 files
6.46K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from dnaugsuz
可能是因为作者瞎写的,没有理由(
Forwarded from dnaugsuz
class 是默认 package-private ?
public class 是…… 允许 new 和 extends?
Forwarded from 这就是中国.jpg
安全牺牲的是性能
Forwarded from dnaugsuz
为什么,你跑分过?
Forwarded from dnaugsuz
别给软件工程里非常常见的 visibility 扣帽子,连 private 都不敢用算什么……
Java 里 private 还有多大开销,那 C++ 呢?
Forwarded from dnaugsuz
应该没问题,除非他们用反射动态访问
一般来说,过度反射都是不良实践,很少被正经库用
Forwarded from 小邱
这里为什么加了private就不行了呢
Forwarded from 小邱
Forwarded from 小邱
它的提示被引用没有了
Forwarded from dnaugsuz
那你就别改了,要不然你就 refactor 成 getListItemNumberView 的形式
估计 MainActivity 里的 View field 真是它自己的,
ViewHolder 里的 View,按字面意义上本来就是给别人使用的,自己只是负责持有,所以要 public 给暴露出去(虽然一般我们都会用 getter/setter 而不是裸 field)
Forwarded from Rubicon
无标识符默认protected(就是你说的package-private),每个文件只能有一个public class(感觉好像Java是用文件名识别class的),文件名与public class的名称相同,比如example.net.Request 必须在example/net/Request.java
Forwarded from 平行线
字段访问权限无论何时都应该最小化,这是好习惯,就像第一个做的那样
第二个是因为它是作为内部类存在,那个字段要被外部类访问(她只是一个viewHolder),如果作为private外部类在语法上虽然也可以访问,但在编译之后它会生成中间代理get方法来访问private字段,方法调用会消耗性能(另:它作为static class会更好)
Forwarded from dnaugsuz
Java 语言的抽象层次比较低,还有 field,Kotlin 里都是自动生成的。
private String name;
String getName() { return name; }
void setName(String name) { this.name = name; }

Java 里一个 class 可以有
constructor, field, method, inner-class
static field, static method

Kotlin 里一个 class 可以有
constructor, val/var, fun, inner class

而且 Kotlin 里需要在架构器被赋值的量,可以直接写架构器里;并且创建某个 class 的新实例也不需要 new 关键字,所以说 Kotlin 抽象程度更好
Forwarded from 平行线
编译之后它将成为 OutterClassName$NumberViewHolder,与外部类关系是同包,外部类在虚拟机层面将无法访问内部类的private字段、方法,Java对于外部类调用内部类的方法、字段的时候会生成包级别(默认)访问权限的Delagate方法来访问
Forwarded from dnaugsuz
可他说的是第二个直接错误了,找不到引用
Forwarded from dnaugsuz
没理由为了这种极端情况刻意优化,而且这代价…… 虽然只是 private 到 public,依然不值得
Forwarded from 平行线
哪个错误了?
findViewById?
Forwarded from 小邱
它的提示被引用没有了
Forwarded from dnaugsuz
显然还有其他代码引用了 ThatViewHolder.listItemView,而那些代码要求 public
Forwarded from dnaugsuz
丑 Java 多作怪,要是 Kotlin 就既可以保证抽象性,又能做到简洁
Forwarded from 平行线
🤔那你应该是在这个Java文件之外使用了这个字段,否则private化并不会产生报错