final

    3热度

    3回答

    我是Java新手,我来自C++背景。 我以为final在Java中的工作就像在C++ const,但我想不是。 对象在C++中作为const启动,只能调用const方法并且不能更改对象中的字段。 但是在我的代码中,我可以在pet中指定值。即pet.id = new ObjectId(newPetId);。 private void addPet() { progressBar.setVi

    1热度

    4回答

    我想每次单击一个按钮时都会将得分变量加1。问题是我必须在onClick之外声明分数变量,否则它将始终设置为0.另外,我无法声明变量final,因为我正在修改该变量。这是代码。 int score = 0; View.OnClickListener listener = new View.OnClickListener() { @Override public v

    4热度

    1回答

    我是Java的新手,并试图学习定义不可变对象的概念。我已阅读Java教程oracle,创建不可变对象的方法之一是 不允许子类重写方法。最简单的方法是将类声明为final。 我的问题是,为什么不允许子类重写方法可以导致创建不可变对象?我在努力了解这里的联系。

    2热度

    3回答

    练习一些代码示例,我遇到了这个问题: 我已经在类级别声明了最终变量,并试图从方法中分配值,导致编译时错误(代码2)。但从构造函数它确实得到分配(代码1)。 代码1: class Immutable { private final int age; private final String name; private Immutable(int age, Strin

    3热度

    2回答

    我正在尝试为最终图像创建一个枚举,其中变量'image'将从文件中加载。如果发生IOException,我想将'image'设置为null。但是,根据编译器的说法,当catch块运行时,可能会或可能不会设置“image”。 public enum Tile { GROUND("ground.png"), WALL("wall.png"); final Image image;

    -1热度

    2回答

    我有两个final在类级别声明的变量,但它们没有被初始化。 因此,现在当我尝试为该类创建默认构造函数时,它给出了一个错误,说 The blank final field may not have been initialized。 为什么会发生此错误?为什么需要在构造函数中初始化最终变量? 我还有另一个查询,也就是说,不可能创建一个没有默认构造函数的实例吗?即使我们有参数化的构造函数?

    -2热度

    5回答

    我一直认为final变量只能被赋值一次。 有人可以请启发我最后的关键字在这种情况下做什么? 这是否意味着它只在函数返回前才是“最终”? public void onClick(View view) { final int x = new Random().nextInt(); System.out.println(x); } 输出: 03-01 14:18:25.022:

    1热度

    1回答

    所以我试图让一个程序找到MST。要建立我使用边的包,我从一个文件中使用此代码读取曲线图: import edu.princeton.cs.algs4.*; class MyEdgeWeightedGraph { private final int V; private final int E; private Bag<MyEdge> edges; pu

    0热度

    1回答

    我刚刚在几周前开始学习Java。我试图在java语言中学习关键词final。我在public static void main方法中写了一个final string声明。但是,IDE显示错误:非法启动表达式。但是,IDE没有提供任何其他信息。因为我对Java比较陌生,所以我无法理解为什么会发生这种情况。有人可以向我解释原因吗? public static void main(String[] ar

    1热度

    3回答

    我需要更改javafx中的lambda事件处理程序内的局部变量。 SerialPort comPorts[] = SerialPort.getCommPorts(); MenuItem[] portsItems = new MenuItem[10]; int q=0; for (SerialPort port : comPorts) { portsItems[q] = n