小编jon*_*ive的帖子

finally块总是在Java中执行吗?

考虑到这一点的代码,我可以绝对肯定的是,finally块总是执行,不管something()是什么?

try {  
    something();  
    return success;  
}  
catch (Exception e) {   
    return failure;  
}  
finally {  
    System.out.println("I don't know if this will get printed out");
}
Run Code Online (Sandbox Code Playgroud)

java return try-catch-finally

2281
推荐指数
38
解决办法
48万
查看次数

包不是必须匹配java文件所在的子目录吗?

我今天早上为我的java认证编写了一些练习程序,并注意到我输错了包名,所以它与java文件所在的子目录不匹配.我编译代码期待错误,但所有编译文件 - - 甚至没有警告.

我google了一下,我读到的大多数页面都说包名必须与子目录相匹配.我的经验表明情况并非如此.

当我尝试运行该程序时,它不起作用,因为.class文件位于错误的目录中.我将它移动到正确的目录,并得到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sample/directory
/doesnt/even/exist/OtherPackageMemberModifiers (wrong name: com/sample/chap01/O
therPackageMemberModifiers)
Run Code Online (Sandbox Code Playgroud)

所以我认为我看到的是,如果软件包和子目录不匹配,Java代码将编译,但如果你这样做,似乎没有办法运行代码.那是对的吗?

java package

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

无法删除我在Java中重命名的目录中的文件?

今天我正在乱搞java.io.File方法,偶然发现了一些奇怪的东西.

当我重命名目录时,我似乎无法删除文件或新目录.

    File dir = new File("dir");
    dir.mkdir();

    File file = new File(dir, "afile.txt");
    file.createNewFile();

    File newname = new File(dir, "newName.txt");
    file.renameTo(newname);

    File newdir = new File("newdir");
    dir.renameTo(newdir);

    System.out.println("file exists? " + file.exists());
    System.out.println("file deleted? " + file.delete());
    System.out.println("newname exists? " + newname.exists());
    System.out.println("deleted newname? " + newname.delete());
    System.out.println("dir exists? " + dir.exists());
    System.out.println("dir deleted? " + dir.delete());
    System.out.println("newdir exists? " + newdir.exists());
    System.out.println("deleted newdir? " + newdir.delete());
Run Code Online (Sandbox Code Playgroud)

产量输出:

    file exists? false
    file deleted? false
    newname exists? false
    deleted newname? …
Run Code Online (Sandbox Code Playgroud)

java file file-rename delete-file

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