标签: final

为什么要避免使用final关键字

在java中,是否有允许扩展非抽象类的情况?

当存在类层次结构时,它似乎总是表示错误的代码.你同意吗,为什么/为什么不呢?

java inheritance extends final

11
推荐指数
4
解决办法
1878
查看次数

关键字final有什么用?

在下面的代码中,如果我从EditText中删除关键字final,我在第(6)行中遇到错误,我将EditText对象(et)传递给intent ...我必须在这里知道final关键字的重要性...

final EditText et=(EditText)findViewById(R.id.t);
        Button b=(Button)findViewById(R.id.b1);
        b.setOnClickListener(new Button.OnClickListener(){
            public void onClick(View v)<br>
            {
            Intent on=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+et.getText()));
            startActivity(on);
            }
        });
Run Code Online (Sandbox Code Playgroud)

java android final

11
推荐指数
2
解决办法
2万
查看次数

Java - 最终变量

我知道,一旦最终变量赋值给它,就无法更改.但是我对此有几个问题:

  • 当我有一个字段,static final JButton button;在类外面说,然后在main方法中,尝试为它赋值button = new JButton("OK");,我收到错误告诉我删除最终修饰符?但是,由于原始button变量尚未引用对象,因此我可以将其分配一次?

  • 其次,如果我完全删除了引用,button所以我只static final JButton button;在课外,我的IDE声称"空白的最终字段按钮可能尚未初始化." 这是否意味着必须初始化所有最终字段?如果是这样,他们必须在那里初始化然后我似乎无法在以后初始化它.

  • 另外,愚蠢的问题,但我最初的假设是,当最终变量被引用到实例或数据类型时,它不能被分配给其他任何东西是正确的,对吗?

此代码不完整,但用于说明我的观点:

public class FinalVarTester {

    static final JButton button;

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        Container container = frame.getContentPane();
        container.setLayout(new BorderLayout());
        button = new JButton("OK");
        container.add(button, BorderLayout.SOUTH);
    }

}
Run Code Online (Sandbox Code Playgroud)

java variables static final

11
推荐指数
1
解决办法
5万
查看次数

为什么传递给runnable的变量需要是最终的?

如果我有一个变量int x = 1,比如说,我在主线程中声明了一个runnable,并且我想将x传递给runnable的run()方法,那么必须声明它final.为什么?

final int x = 0;//<----must be final...
private class myRun implements Runnable {

    @Override
    public void run() {
        x++;//
    }

}
Run Code Online (Sandbox Code Playgroud)

java variables final runnable

11
推荐指数
2
解决办法
1万
查看次数

为什么我可以匿名子类枚举枚举而不是最终类?

这段代码:

public class Sandbox {
    public enum E {
        VALUE {
            @Override
            public String toString() {
                return "I'm the value";
            }
        };

        @Override
        public String toString() {
            return "I'm the enum";
        }
    }
    public static void main(String[] args) {
        System.out.println(E.VALUE);
    }
}
Run Code Online (Sandbox Code Playgroud)

打印:

我很有价值

但是,这段代码:

public class Sandbox {
    public static final class C {
        @Override
        public String toString() {
            return "I'm a C";
        }
    }

    public static void main(String[] args) {
        System.out.println(new C() {
            @Override
            public String toString() { …
Run Code Online (Sandbox Code Playgroud)

java enums final anonymous-types

11
推荐指数
2
解决办法
1274
查看次数

创建对象时是否可以初始化最终变量?

如何才能在对象的创建时初始化类的最终变量?

任何人都可以解释它是怎么可能的?...

java final

11
推荐指数
2
解决办法
1万
查看次数

我们可以更改可变类的最终变量的值吗?

以下是我试图更改最终变量值的代码.首先它打印"a"然后"ab".那么,如果我们可以改变最终变量的值那么将变量声明为final是什么好处呢?那么最终关键词的用途是什么?请任何人可以帮我这个?????

package test_new;
public class FinalVarValueChange {
    public static void main(String[] args){
       final StringBuffer s=new StringBuffer("a");
       System.out.println("s before appending  :"+s);
       s.append("b");
      System.out.println("s after appending  :"+s);     
   }
}
Run Code Online (Sandbox Code Playgroud)

java final

11
推荐指数
2
解决办法
4万
查看次数

自定义String类创建

我试图在我的eclipse工作区中的java.lang包中创建一个自定义类String.最初我怀疑同一个包中的同一个类是无法创建的,但令我惊讶的是我能够在同一个包中创建一个类(String),即java.lang

现在我很困惑
1)为什么有可能和
2)如果允许的话可能是什么原因.
3)如果在Java中允许这种类型的java类创建,将会有什么用处.

java string final class

10
推荐指数
1
解决办法
2019
查看次数

空白的最终字段INITIAL可能尚未初始化

我用Java编程.我已经为每个方法添加了注释来解释他们应该做什么(根据作业).我已将我所知道的内容添加到Password.java(我在研究学校提供的javadoc后创建的存根)中.我的问题不是关于几个函数,我知道testWord和setWord中有错误,但我会自己处理.我的问题是关于这一行:

public static final java.lang.String INITIAL;
Run Code Online (Sandbox Code Playgroud)

这条线是由学校提供的,所以我必须假设它是正确的,我无法找到关于常数字段值INITIAL的任何文档,所以如果有人能够提供关于那将是惊人的信息(例如,如何是处理?它存储什么?如果有的话?键入?).我在Eclipse中的这一行上得到了一个错误:

空白的最终字段INITIAL可能尚未初始化

为什么这个错误在这里?提前感谢您的评论.

仅供参考Password.java的代码:

package ss.week1;

public class Password extends java.lang.Object {

// ------------------ Instance variables ----------------

/**
 * The standard initial password.
 */

public static final java.lang.String INITIAL;

// ------------------ Constructor ------------------------

/**
 * Constructs a Password with the initial word provided in INITIAL.
 */

public Password() {

}

/**
 * Tests if a given string is an acceptable password. Not acceptable: A word
 * with less than 6 characters or …
Run Code Online (Sandbox Code Playgroud)

java eclipse final

10
推荐指数
1
解决办法
4万
查看次数

是否可以在 Dart 类中将方法声明为 Final?

在 Java 中,可以在类中声明方法以防止子类覆盖它。

例如:

class Foo {

   final void bar() {
     // some code here.
   }

}
Run Code Online (Sandbox Code Playgroud)

Dart中有类似的构造吗?

methods final class dart

10
推荐指数
1
解决办法
3059
查看次数