相关疑难解决方法(0)

不能引用在不同方法中定义的内部类中的非final变量

编辑:我需要更改几个变量的值,因为它们通过计时器运行几次.我需要通过计时器每次迭代不断更新值.我无法将值设置为final,因为这会阻止我更新值,但是我收到了我在下面的初始问题中描述的错误:

我以前写过以下内容:

我收到错误"不能引用在不同方法中定义的内部类中的非final变量".

这种情况发生在双重调用价格和价格调用priceObject上.你知道我为什么会遇到这个问题.我不明白为什么我需要最后的声明.此外,如果你能看到我想要做的是什么,我该怎么做才能解决这个问题.

public static void main(String args[]) {

    int period = 2000;
    int delay = 2000;

    double lastPrice = 0;
    Price priceObject = new Price();
    double price = 0;

    Timer timer = new Timer();

    timer.scheduleAtFixedRate(new TimerTask() {
        public void run() {
            price = priceObject.getNextPrice(lastPrice);
            System.out.println();
            lastPrice = price;
        }
    }, delay, period);
}
Run Code Online (Sandbox Code Playgroud)

java methods final declaration

244
推荐指数
6
解决办法
19万
查看次数

为什么Java的迭代器不是Iterable?

为什么Iterator界面没有扩展Iterable

iterator()方法可以简单地返回this.

它是故意还是只是对Java设计师的监督?

能够使用像这样的迭代器的for-each循环会很方便:

for(Object o : someContainer.listSomeObjects()) {
    ....
}
Run Code Online (Sandbox Code Playgroud)

where listSomeObjects()返回一个迭代器.

java iterator iterable

172
推荐指数
7
解决办法
5万
查看次数

Scanner vs. StringTokenizer vs. String.Split

我刚刚学习了Java的Scanner类,现在我想知道它如何与StringTokenizer和String.Split进行比较/竞争.我知道StringTokenizer和String.Split只适用于字符串,那么为什么我要将扫描器用于字符串呢?Scanner只是打算一站式购物吗?

java split tokenize java.util.scanner

152
推荐指数
5
解决办法
14万
查看次数

如何在Java中将CamelCase转换为人类可读的名称?

我想编写一个将CamelCase转换为人类可读名称的方法.

这是测试用例:

public void testSplitCamelCase() {
    assertEquals("lowercase", splitCamelCase("lowercase"));
    assertEquals("Class", splitCamelCase("Class"));
    assertEquals("My Class", splitCamelCase("MyClass"));
    assertEquals("HTML", splitCamelCase("HTML"));
    assertEquals("PDF Loader", splitCamelCase("PDFLoader"));
    assertEquals("A String", splitCamelCase("AString"));
    assertEquals("Simple XML Parser", splitCamelCase("SimpleXMLParser"));
    assertEquals("GL 11 Version", splitCamelCase("GL11Version"));
}
Run Code Online (Sandbox Code Playgroud)

java regex string camelcasing humanize

149
推荐指数
5
解决办法
6万
查看次数

匿名vs命名的内部类? - 最佳做法?

我有一个类,我们称之为LineGraph,它呈现一个折线图.我需要对它进行子类化,但派生类仅在一个地方使用,并且与使用它的类耦合.所以我使用内部类.

我看到两种方法:

匿名内部阶级

public class Gui {
    LineGraph graph = new LineGraph() {
        // extra functionality here.
    };
}
Run Code Online (Sandbox Code Playgroud)

命名内部类

public class Gui {
    MyLineGraph graph = new MyLineGraph();

    private class MyLineGraph extends LineGraph {
        // extra functionality here.
    }
}
Run Code Online (Sandbox Code Playgroud)

我不是匿名内部阶级的粉丝,因为坦率地说,我认为它看起来真的很难看.但是在一个仅在一个地方使用的子类的情况下,命名的内部类是否过度杀伤?什么是公认的做法?

java oop inheritance class anonymous-class

44
推荐指数
5
解决办法
3万
查看次数

什么是Iterable接口用于?

我是初学者,我无法理解Iterable界面的真实效果.

java iterable

36
推荐指数
3
解决办法
4万
查看次数