标签: java-7

数字文字中是否存在任何下划线?

我刚刚阅读了Java7中的增强功能( http://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html).在那里,我看到了Underscores Numeric Literals并尝试了Like ....

int i=9_000; 没关系.

但我看到规则,它也允许...

int i=9____________________________________________________________________________________000;
Run Code Online (Sandbox Code Playgroud)

有没有结束Underscores?

java java-7

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

Swing组件上的Java 7 Generics

我有一个类,它扩展了一个Swing组件,如:

public class MyCustomClass extends JComboBox
Run Code Online (Sandbox Code Playgroud)

这里的问题是我得到编译器警告:

JComboBox是原始类型.应参数化对泛型类型JComboBox的引用

我不确定参数化JComboBox,以便从这里进一步扩展的任何类都可以使用任何类型的对象.我试图把它作为扩展JComboBox,等等,但这不起作用.任何建议,将不胜感激.

java generics swing java-7

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

删除文件及其父目录(如果它们为空).(Java)

我正在尝试一个简单的方法,删除文件的上层目录,如果它们是空的,直到它到达基本目录,但我不能使它工作.

它删除文件及其父目录,但是,它的下一个父项在它抛出时不会被删除DirectoryNotEmptyException.它确实是空的,因为只有一个子目录,并且它在上一次迭代中被删除.

因此,文件被删除,其父项被删除,并在那里停止,不再删除上层目录.

编辑:(修改后的代码)

似乎延迟删除目录,因此在下一次检查目录的空白状态时,前一个目录尚未删除.所以我添加了一个while循环来检查,直到该目录不存在.我不知道这是不是一个坏技术,但它适合我的需要.

public static void removeFileAndParentsIfEmpty(Path path) throws IOException {
    if(path == null || path.endsWith(FilesPath.BILLS_DIRECTORY)) {
        return;
    }
    if (Files.isRegularFile(path)){
        Files.deleteIfExists(path);
    } else if (Files.isDirectory(path)){
        if(path.toFile().list().length == 0){
            Files.delete(path);
            while(Files.exists(path));
        }else{
            return;
        }
    } else {
        return;
    }
    removeFileAndParentsIfEmpty(path.getParent());
}
Run Code Online (Sandbox Code Playgroud)

如果有人能提供更好的解决方案,那么这个问题仍然需要批准.谢谢.

java java-io java-7

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

"setenforce 0"如何以及为什么允许Java 7运行?

我对正在进行的程序进行了一些更改,并且我已经将Java从Java 6更新为Java 7.

我在CentOS 5.8 32位VM上运行程序.

在Java更新之前,它工作正常.

现在该过程不是以错误开头的:

 [root@CentOS-58-i-0 bin]# ./agent.sh start

 Starting Agent.....d. running (23442).
 Error: dl failure on line 864
 Error: failed /agent/jre/lib/i386/client/libjvm.so, 
 because /agent/jre/lib/i386/client/libjvm.so: 
 cannot restore segment prot after reloc: Permission denied
Run Code Online (Sandbox Code Playgroud)

我已经在线检查过,解决方案/解决方法就是运行命令:

   setenforce 0
Run Code Online (Sandbox Code Playgroud)

它会起作用.

阅读setenforce命令的文档,我不明白它的作用以及它是如何解决问题的.

所以我的问题是:

  1. 什么可能导致错误阻止我启动我的过程?
  2. 为什么setenforce命令会解决它?
  3. 请简要说明setenforce一般情况.

java linux selinux java-7

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

Java 7 JDK自动更新

有没有办法设置Java 7,所以它会自动更新?我在Windows 7,64bit上使用JDK标准版.Java 6会自动检查更新并提示您安装它们.但是,Java 7似乎没有任何更新机制.甚至Java控制面板中的"更新"选项卡也消失了.

java auto-update java-7

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

Java - ZUI(Zoomable用户界面)

我目前正在做一个需要显示大量数据的小型个人项目,我突然想到实现一种可缩放的用户界面,允许用户浏览大量数据.

我知道ZVTM和Piccolo2d这样的现有项目,我可能会最终用于这项工作,但我也很想开始编写自己的项目.但是,我有点不确定如何开始.

从我一直在阅读的内容看来,像Piccolo2d这样的项目是由于Java中缺乏"场景图"管理而开发的,Piccolo2d是基于"Pad","Pad ++"等老项目的工作而开发的. '爵士乐'.

经过一段时间的谷歌搜索,我可以看到JavaFX中提供了场景图管理,但我想知道Java 7中的Swing是否具有此功能.

我有一点想法,我想知道是否有可能使用JLayerAPI 实现基本的缩放界面,实质上是根据当前缩放级别装饰具有不同层的对象.

举个例子,假设我可以看到最远缩放级别的目录,放大后会显示目录的内容,进一步放大会显示目录中存在的文件内的文本.我一直在玩Eagle Mode一段时间,所以这是我正在考虑的一个完美的例子.

我知道这是一个很长的问题(如果它真的是一个问题).基本上,让我们假装Piccolo等人不存在,而我所拥有的只是核心Java 7 JDK,任何人都能提出一个好的起点吗?

似乎Piccolo2d在很大程度上依赖于Java2d API,所以我想知道API是否已经进步,或者Java 7引入了新的机制来实现类似的效果.

我对任何可以提供的意见或建议感兴趣.我知道这不是一项容易的任务,但没有任何时间限制,它只是一个个人项目.

谢谢

java swing javafx interface java-7

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

IntelliJ单元测试问题

尝试在IntelliJ中运行单元测试时出现以下错误.从谷歌搜索它似乎与使用JDK7和Powermock不兼容有关.经常出现的建议是添加-XX:-UseSplitVerifier标志.我按照以下说明试过这个:( 如何在Mac上的IntelliJ IDEA中增加IDE内存限制?)但是继续得到错误.

还有其他人有这个问题并解决了吗?

java.lang.VerifyError: Inconsistent stackmap frames at branch target 48 Exception Details:   Location:
    com/marketplace/impl/MarketplaceLibTestBase.<init>(Lorg/powermock/core/IndicateReloadClass;)V @48: aload_2   Reason:
    Type uninitializedThis (current frame, locals[2]) is not assignable to 'com/marketplace/impl/MarketplaceLibTestBase' (stack map, locals[2])   Current Frame:
    bci: @34
    flags: { flagThisUninit }
    locals: { uninitializedThis, 'org/powermock/core/IndicateReloadClass', uninitializedThis, 'org/powermock/core/IndicateReloadClass', top, 'java/lang/Object' }
    stack: { 'java/lang/Object', 'java/lang/Object' }   Stackmap Frame:
    bci: @48
    flags: { flagThisUninit }
    locals: { uninitializedThis, 'org/powermock/core/IndicateReloadClass', 'com/marketplace/impl/MarketplaceLibTestBase', 'org/powermock/core/IndicateReloadClass' }
    stack: { }   Bytecode:
    0000000: 2a2b 4e4d 1312 9bb8 129d …
Run Code Online (Sandbox Code Playgroud)

intellij-idea powermock java-7

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

在开关情况下不接受最终常数

我想知道方法add()中的2个声明之间的区别,如下所示.

final int c;
c = 20;
Run Code Online (Sandbox Code Playgroud)

和

final int c = 20;
Run Code Online (Sandbox Code Playgroud)

我认为两者都是最终变量,我无法重新分配任何新值.以下是以不同方式处理上述声明的方法.

void add() {
        final int a = 30;
        final int b = 10;
        final int c;
        c = 20;

        switch (a) {
        case b + c:
            System.out.println("In case b+c");
            break;

        default:
            break;
        }

    }
Run Code Online (Sandbox Code Playgroud)

抱怨,上面的方法根本没有编译

常数表达式需要案例b + c

如果声明变量c并在一行中初始化,例如final int c = 30;.有用.

java final switch-statement java-7

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

Java 5中Java 7 for HashMap的变化

我不是Java专家,只是体验Java 5和Java 7上以下程序输出的变化.任何人都知道Java 7中HashMap实现的变化是什么吗?

import java.util.HashMap;
import java.util.Map;

public class HashMapDemo {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("1", "111");
        map.put("a", "aaa");
        map.put("A", "AAA");

        map.put("D", "DDD");
        map.put("d", "ddd");
        map.put("0", "000");

        map.put("B", "BBB");
        map.put("b", "bbb");
        map.put("2", "222");

        for(Map.Entry<String, String> entry : map.entrySet()){
            System.out.println(entry.getKey()+ "  "+entry.getValue());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Java 7上的输出

D  DDD
2  222
d  ddd
1  111
0  000
b  bbb
A  AAA
B  BBB
a  aaa
Run Code Online (Sandbox Code Playgroud)

Java 5上的输出

0  000
1  111 …
Run Code Online (Sandbox Code Playgroud)

java java-5 java-7

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

创建一个通用类列表

我有一个实用程序方法,可以从某些对象中创建一个元素列表:

public static final <T> List<T> list(T t) {
    final List<T> rv = new ArrayList<>();
    rv.add(t);
    return rv;
}
Run Code Online (Sandbox Code Playgroud)

我也有一个接受type参数的方法List<Class<?>>。因此,我必须创建该类型的对象。这是我尝试做的事情:

final Class<?> aClass = Integer.class;
final List<Class<?>> trivialListOfClasses = list(aClass);
Run Code Online (Sandbox Code Playgroud)

……这失败了:

[javac] /some/path/Foo.java:41: error: incompatible types
[javac]             final List<Class<?>> trivialListOfClasses = list(aClass);
[javac]                                                                  ^
[javac]   required: List<Class<?>>
[javac]   found:    List<Class<CAP#1>>
[javac]   where CAP#1 is a fresh type-variable:
[javac]     CAP#1 extends Object from capture of ?
[javac] 1 error
Run Code Online (Sandbox Code Playgroud)

完成上述任务的正确方法是什么?我了解有关Java泛型不变的部分,但是到底发生了什么?

java generics java-7

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