final相关内容
这与 java中的最终接口有关.在讨论中有一个关于接口的最终概念是模棱两可的.最终接口是否意味着它不能具有子接口?这是否意味着它无法实现? 第一个问题是:您能否编写最终接口,以便编译器阻止您实现它? 正如我将显示的, 解决方案 可以使用代理来实现上面的接口.更有意义的问题是,为什么要尝试创建无法实现的界面?即使从哲学角度来说,它似乎也很肤浅. import java.lang.r
..
在日常编程(Web或其他方式)中,是否应出于某种特殊原因声明一个类或方法为final?请提供实际使用示例. 顺便说一句,我问是因为我正在尝试选择一个“晦涩"的关键字并掌握它. 解决方案 它可以防止其他程序员处理您不希望他们从事的工作.因此,与其发表评论说“不要使用此类来做XXX",您可以以这样一种方式设计它:他们不会被诱惑覆盖它并以这种方式滥用它. 编辑:由于请求了一个示例,因
..
我在 python文档中遇到了以下内容: bool([x]) 使用标准真值测试过程将值转换为布尔值.如果x为false或省略,则返回False;否则为false.否则 返回True. bool也是一个类,它是int的子类. 班级 bool不能再进一步子类化.它的唯一实例是False和 是的. 我一生中从未想过要继承bool,但自然而然地,我立即尝试了它,而且很确定: >>>
..
在方法内声明局部内部类时,为什么包含最终的静态String或int是合法的,而包含其他对象却不合法? 例如: class Outer { void aMethod() { class Inner { final static String name = "compiles"; final static int ctr = 10; // compi
..
我试图通过使用Runnable接口包装我需要的任何函数来简单地计时一个函数. private static double time(Runnable runnable) { // returns how long runnable took long startTime = System.nanoTime(); runnable.run(); return (Syst
..
我遇到了一个包含多个字符串文字"foo"的类. 我想知道的是,使用这种方法而不是将String声明为final并将所有文字替换为final变量有什么好处和影响(就对象创建,内存使用和速度而言) ? 例如(尽管显然不是真正的单词用法): private static final String FINAL_STRING = "foo"; public void stringPrin
..
我曾经认为private val和private final val是相同的,直到我在Scala参考中看到了第4.1节: 常量值的定义形式为 final val x = e 其中e是一个常量表达式(第6.24节). final修饰符必须存在,并且不能给出类型注释.对常量值x的引用本身被视为常量表达式.在生成的代码中,它们将替换为定义的右侧e. 我已经写了一个测试: cl
..
val不能在单例对象中自动结束的原因是什么?例如 object NonFinal { val a = 0 val b = 1 def test(i: Int) = (i: @annotation.switch) match { case `a` => true case `b` => false } } 导致: :
..
我正在尝试通过执行程序并运行可并行执行100个任务,该任务需要使用循环变量: for (int i = 0; i { doSomething(String.format("Need task number %d done", i)); } }); } 我在'i'的语气中迷惑不解-Varia
..
Dart文档读取: 如果您从未打算更改变量,请使用final或const,而不是 而不是var或除类型外。最终变量只能设置一次 ; 好,这意味着第二次分配最终变量将不起作用,但没有提及修改 的内容,即 void main(){ final List清单= [1,2,3]; list = [10,9,8]; //错误! list ..cle
..
我遇到一个问题,在尝试一些代码片段时遇到了一个代码 class O { final int i; O() { i = 10; } O(int j)//错误,因为空白空白字段i未初始化 { j = 20; System.out.println(j); } } class Manager3 { public static void main(final
..
有多种方法可以从构造函数中设置成员变量。我实际上是在讨论如何正确设置最终成员变量,特别是一个由助手类加载条目的映射。 公共类Base { private final Map availableCommands; public Base(){ availableCommands = Helper.loadCommands(); } }
..
在Java中,您可以执行以下操作: class A { private final int x; public A(){ x = 5; } } 在Dart中,我尝试过: A类{ final int x; A(){ this.x = 5; } } 我遇到两个编译错误: 必须初始化最终变量'x'。
..
我不明白为什么在这里需要局部变量: 公共类FinalWrapper { 公众最终T值; public FinalWrapper(T value){ this.value = value; } } 公共类Foo { private FinalWrapper helperWrapper; public Helper getHelper(){
..
通过创建私有构造函数,我们可以避免在外部任何地方实例化类。通过将班级定为最终班级,其他任何班级都无法对其进行扩展。为什么Util类必须具有 private 构造函数和 final 类? 解决方案 从功能的角度或Java复杂性或运行时来看,这不是强制性的。但是,其编码标准已为更广泛的社区所接受。甚至许多静态代码检查工具,例如 checkstyle 以及许多其他工具,都检查此类是否具有这种约定
..
类父级{ 最终静态字符串newLine =“ *” } 类子级扩展父级{ 列表主体= [3 ,4,5] 字符串toString(){ def str = new StringBuilder() body.each {str.append(it + newLine)} str } } def c = new Child() println c 上面是说明
..
我们知道在匿名类中只能访问最终的局部变量,并且在这里有充分的理由:为什么只能在匿名类中访问最终变量?。 但是,我发现一个匿名类如果变量是封闭类的成员字段,则仍可以访问非最终变量:如何从匿名类内部访问封闭的类实例变量? 我很困惑。我们确保匿名类中只能访问最终的局部变量,因为我们不希望该变量在匿名类和本地函数之间不同步。如果我们尝试访问匿名类中的非最终封闭类成员,则同样的原因也适用于这种情
..
我刚刚尝试设置一个变量,向我展示了超级构造函数已经完成而没有浪费我的代码。 所以我记得如何初始化类变量;在超级构造函数之后但在类构造函数之前。 但是,如果您看下面的示例,将会有些奇怪: public class Init { public Init(){ System.out.println(“的Init实例+ this.getClass()。getSimpleName());
..
当我在gradle中定义时,可以在java / test下模拟最终类: testCompile“ org.mockito:mockito-inline:+” 如何在java / androidTest下模拟最终类?此解决方案不起作用: androidTestCompile“ org.mockito:mockito-android:+” 您有任何想法吗? 解决方案 不
..
我在类和方法 之间使用“ final”关键字时感到非常困惑,即为什么final方法仅支持继承但不支持final类 final class A { void print(){System.out.println(“ hello world”);} } 类Final扩展A { public static void main(String [] args){ System.out
..