小编Cri*_*utu的帖子

如何在IntelliJ中退一步?

是否可以在调试会话中向后执行已执行的代码?

例如,我跳过一个名为abc()expecting get 的方法,12但在重新检查返回的值后,我注意到它5而不是12.我怎样才能回到原来的位置并进入方法以查看发生了什么?我知道你可以在visual studio中做到这一点,但我无法在intelliJ中找到如何做到这一点.

java debugging intellij-idea

59
推荐指数
1
解决办法
3万
查看次数

为什么array.size为'0'?

我有以下数组:

ArrayList<Integer> myArray = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)

我还有一个变量'someNum':

int someNum = 12;
Run Code Online (Sandbox Code Playgroud)

我的代码:

public class Main {
    public static void main(String[] args){    
        int someNum = 12;
        ArrayList<Integer> myArray = new ArrayList<Integer>(someNum);
        int arraySize = myArray.size();
        System.out.println(arraySize);
    }
}
Run Code Online (Sandbox Code Playgroud)

安慰: '0'

为什么打印'0'

我检查了ArrayList文档,指出array.size();"返回此列表中的元素数".

我究竟做错了什么?

java arrays arraylist

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

覆盖私有方法

我的Java书有以下练习问题:

public class Person(){...}

public class Teacher extends Person{...}
Run Code Online (Sandbox Code Playgroud)

并询问以下哪项是正确的陈述:

1:教师继承的构造函数Person

2:教师可以添加新方法和私有实例变量。

3:教师可以覆盖的现有私有方法Person

这本书说2和3是正确的。我说只有2个是对的。

我读过,子类确实继承了私有方法和成员字段,但不能直接访问它们。所以我的问题是,如果无法直接访问现有的私有方法,它将如何覆盖它们?如果有人有充分理由将私有方法私有化,为什么还要覆盖私有方法呢?

java oop inheritance overriding private

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

多态性和混淆的实例

我很困惑一个对象是一个instanceof两个不同的类.例如:

EnglishTest x = new EnglishQuiz();
if (x instanceof EnglishTest){
   System.out.print("P");
}
if (x instanceof EnglishQuiz){
   System.out.print("P");
} 
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都打印出"P".我的问题是为什么?

我知道这x是类型,EnglishTest但因为我在做new EnglishQuiz,不应该意味着我正在创建一个实例,EnglishQuiz而不是EnglishTest那样?这里发生了什么?

java oop polymorphism instanceof

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

.hasNext()不会变错

我有以下代码,我无法理解为什么.hasNext()不会变错.我正在读一个名为test的文件.

我的代码:

package printing;
import java.io.File;
import java.util.Scanner;

public class Printer {
    public int count() throws Exception{
        int num = 0;
        File f = new File("C:\\Users\\bob\\Desktop\\test.txt");
        Scanner in = new Scanner(f);
        while (in.hasNext()){
            num++;
        }
        return num;
    }
}
Run Code Online (Sandbox Code Playgroud)

主要:

public class Main {
    public static void main(String[] args) throws Exception{
        Printer mine = new Printer();
        System.out.println(mine.count());
    }
}
Run Code Online (Sandbox Code Playgroud)

文件内容:

4 4 6 3 8 8 8

怎么了?

java file

0
推荐指数
1
解决办法
101
查看次数