标签: java-7

Java 7中的闭包

那么Java 7最终会获得关闭吗?什么是最新消息?

java closures java-7

7
推荐指数
2
解决办法
1238
查看次数

java 7目录监控问题

我刚看到目录观察者java 7的一个很棒的功能.它会在没有轮询目录的情况下告诉您目录中发生了什么变化.

1.)但它表示,如果文件系统不支持注册更改事件,它将回退到轮询.所有典型的linux和Windows文件系统(extX,ntfs,reiserXXX,jsf,zfs)是否都支持此功能?

2.)重命名目录中的文件是创建还是更改事件?或者是一个删除和一个创建?我可以在一个系统上测试它,但它对所有文件系统都是一样的吗?

java directory monitoring registration java-7

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

如何在Java中以编程方式识别哪个Unicode版本支持?

由于Java代码可以在任何Java VM中运行,我想知道如何以编程方式识别支持哪种Unicode版本?

java unicode jvm java-7

7
推荐指数
2
解决办法
2851
查看次数

拖放JDK1.6和JDK1.7之间的差异

有没有人知道JDK1.6和JDK1.7之间的拖放行为的差异?将URL从浏览器拖放到需要支持JDK1.5,JDK1.6和JDK1.7的应用程序时,我遇到了不同(如下图所示).我现在想知道是否存在其他差异以及是否在某处记录了这些差异.

我遇到的不同行为是通过点击并拖动URL到Java应用程序来拖放来自浏览器(而不是来自地址栏但来自页面)的URL.在JDK1.6上,Transferable不支持它DataFlavor.javaFileListFlavor和它在JDK1.7上(尽管在请求它​​的传输数据时你得到一个空列表).以下代码说明了该问题.它打开一个JFrame可以拖放URL,如http://www.google.com,并打印出是否使用文件列表风格或URI列表风格

import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.TransferHandler;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

public class DragAndDropTester {
  private static DataFlavor URI_LIST_FLAVOR = null;

  static {
    try {
      URI_LIST_FLAVOR = new DataFlavor( "text/uri-list;class=java.lang.String" );
    }
    catch ( ClassNotFoundException ignore ) {
    }
  }
  public static void main( String[] args ) {
    try {
      EventQueue.invokeAndWait( new Runnable() {
        public …
Run Code Online (Sandbox Code Playgroud)

java swing drag-and-drop java-7

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

打印非常大的BigIntegers

我试图找出与Java 7 x64中的BigIntegers相关的以下问题.我试图计算一个极高功率的数字.代码如下,然后是问题描述.

import java.math.BigInteger;

public class main {

    public static void main(String[] args) {
        // Demo calculation; Desired calculation: BigInteger("4096").pow(800*600)
        BigInteger images = new BigInteger("2").pow(15544);

        System.out.println(
            "The number of possible 16 bpc color 800x600 images is: "
            + images.toString());        
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到打印此操作结果的问题.当此代码执行时,它会打印消息但不打印值images.toString().

为了隔离问题,我开始计算2的幂,而不是在该行的注释中列出的所需计算.在我测试过的两个系统上,2^15544是触发问题的最小计算; 2^15543工作良好.

我没有接近达到主机系统的内存限制,我不相信我甚至接近VM限制(无论如何运行VM参数-Xmx1024M -Xms1024M都没有效果).

在互联网上寻找答案之后,我开始怀疑我在这些类型用于内部数据存储的数组()的最大大小BigInteger或者String与之相关的限制Integer.MAX_VALUE.如果问题在于String我认为可以扩展BigInteger并编写一个一次喷出几个字符的打印方法,直到整个BigInteger打印出来,但我宁愿怀疑问题出在其他地方.

感谢您抽出宝贵时间阅读我的问题.

java 64-bit biginteger java-7

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

MethodHandle查找工具

就JavaDoc状态而言,MethodHandles.lookup()返回能够访问与此函数的调用者相同的方法/函数/构造函数的工具.具体来说,如果调用者可以访问某些私有数据,那么这个MethodHandles.Lookup工具.下面的代码表明这是错误的.哪里弄错了?

public class MethodHandlerAccessTest  {

        private static class NestedClass {
            private static void foo(){}
        }

        @Test
        public void testPrivateAccess() throws Throwable {
            NestedClass.foo();  //compiles and executes perfectly
            MethodType type = MethodType.methodType(void.class);
            MethodHandles.Lookup lookup = MethodHandles.lookup();
            MethodHandle mh = lookup.findStatic(NestedClass.class, "foo", type);
        }

 }
Run Code Online (Sandbox Code Playgroud)

编辑:

这就是我得到的:

java.lang.IllegalAccessException:member is private:MethodHandlerAccessTest $ NestedClass.foo()void,来自java.lang.invoke.MethodHandles的java.lang.invoke.MemberName.makeAccessException(MemberName.java:507)的MethodHandlerAccessTest $ Lookup.checkAccess (MethodHandles.java:1182)java.lang上的java.lang.invoke.MethodHandles $ Lookup.checkMethod(MethodHandles.java:1162)java.lang上的$ Lookup.accessStatic(MethodHandles.java:591).在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:)的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)的MethodHandlerAccessTest.testPrivateAccess(MethodHandlerAccessTest.java:19)上的invoke.MethodHandles $ Lookup.findStatic(MethodHandles.java:587) 57)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod. java:47)at org.junit.internal.runners.model.Re flectiveCallable.run(ReflectiveCallable.java:12)org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)在org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)在org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)在org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50 )org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:238)org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:63)at org.junit.runners.ParentRunner.runChildren(ParentRunner. java:236)org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:53)org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:229)org.junit.runners.ParentRunner.run (ParentRunner.java:309)在org.eclipse.jdt.internal.junit.runner.TestExecution的org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50).运行(TestExecution.java:38)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner. …

java reflection java-7

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

在使用java 7或8编译后,AppBundle抛出"LSOpenURLsWithRole()失败,错误-10810"

我将jdk升级到版本7_45.编译并执行jar后,工作正常,我将其打包到应用程序包中.但不幸的是,我收到此错误消息"LSOpenURLsWithRole()失败,错误-10810为文件/Users/.../MyApp.app".与jdk 8 Early Access相同的问题.我也.尝试在info.plist中为"JVMVersion"键设置不同的设置

由于jar本身工作正常,我可以通过将JavaApplicationStub替换为我自己的可执行文件来简单地调用"java -jar ./.../MyApp.jar"来解决这个问题.但不确定这是否是解决此问题的正确方法.有什么建议?谢谢.

java macos app-bundle java-7 java-8

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

Java:使用PDFBox库从图像创建PDF页面

我需要将图像(主要是JPEG)直接转换为PDF文档的PDF页面.
可能是图像的大小不同.

每个PDF页面都应具有与图像完全相同的尺寸.
因此每个页面仅包含全分辨率的图像.

如何实现这一点,页面设置为图像/内容的尺寸?
因为我看到了具有不同页面大小和方向的PDF文件,但是如何使用PDFBox完成?

java pdf pdfbox java-7

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

Java 8不兼容的类型错误

Set<Object> removedObjs = new HashSet<>();
List<? extends MyEntity> delObjs = (List<? extends MyEntity>) new ArrayList<>(removedObjs);
Run Code Online (Sandbox Code Playgroud)

MyEntity 是标记界面.

上面的代码在(java版本"1.7.0_91",准确)中工作正常,但在(java版本"1.8.0_77")中没有

在Java8中,我收到以下异常:

incompatible types: ArrayList<Object> cannot be converted to List< ? extends MyEntity>

java java-7 java-8

7
推荐指数
2
解决办法
1826
查看次数

关于'&&'和'||'的令人困惑的例子 优先权

我测试的优先级&&,并||和我有令人困惑的例子.在Java中,&&运算符优先级高于运算符||.

所以,如果我们有这3个表达式:

//expr1  = true , expr2 = false; expr3 = false;

if(expr1 || expr2 && expr3);
Run Code Online (Sandbox Code Playgroud)

应评估为:

if(expr1 || (expr2 && expr3));
Run Code Online (Sandbox Code Playgroud)

所以expr2 && expr3应该在之前进行评估expr1.但是,这个例子:

int a1 = 10;
int a2 = 20;
System.out.println(a1 < a2 || ++a1 > a2 && ++a2 < a1);
System.out.println(a1);
System.out.println(a2);
Run Code Online (Sandbox Code Playgroud)

输出:

true
10
20
Run Code Online (Sandbox Code Playgroud)

这证明只有 a1 < a2被评估.你能解释为什么会这样吗?

java operator-precedence java-7

7
推荐指数
3
解决办法
643
查看次数