标签: java-8

为什么sun.swing.AccessibleMethod从JDK 8中消失了?

我想知道是否有人知道为什么sun.swing.AccessibleMethod从JDK 8开始,如果JDK 8中有这个类的替代品?我无法在任何地方找到任何相关信息.我在自己的实现中使用这个类DropHandler.我使用的代码片段sun.swing.AccessibleMethod如下所示:

private DropLocation getDropLocation(DropTargetEvent e)
{
    DropLocation dropLocation = null;
    if (this.component != null)
    {
        try
        {
            Point p = e instanceof DropTargetDragEvent ? ((DropTargetDragEvent)e).getLocation() : ((DropTargetDropEvent) e).getLocation();
            AccessibleMethod method = new AccessibleMethod(JComponent.class,
            "dropLocationForPoint",
            Point.class);

            dropLocation = (DropLocation) method.invokeNoChecked(this.component, p);
        }
        catch (NoSuchMethodException ex)
        {
            LOGGER.info(ex.getMessage());
        }
    }

    return dropLocation;
}
Run Code Online (Sandbox Code Playgroud)

java swing netbeans-platform java-8

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

如何在Java 8中处理货币?

处理货币的首选方式是什么Java 8

可能感兴趣的事情是

* Currency Full Name (e.g. United States Dollar)  
* Currency Abbreviation (e.g. USD)  
* Currency Symbol (e.g. $)  
Run Code Online (Sandbox Code Playgroud)

我可能在这里遗失的任何其他事情?

什么是最好的选择?

java java-ee java-8

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

Java不支持的主要次要版本52?尽管我没有使用Oracle Java 1.8的新功能,为什么会发生这种情况?

我只是在学习Java.我编译并创建了一个jar文件,用于带有简单GUI的简单测验游戏.全部从Ubuntu 14.04终端手动完成' javac -d ...'和' jar -xvmf...'

这是我的版本细节:

java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

javac 1.8.0_11
Run Code Online (Sandbox Code Playgroud)

我跟着一个关于Java SE 5.0的教程来创建它,所以我想没有使用'1.8'的新功能.它汇编了,它对我来说很好.当我的朋友谁在Ubuntu 14.04使用了OpenJDK(提供最新版本)试图运行它,他收到了很多错误,包括不支持的主要和次要... ... 52.

我没有来自终端的完整详细输出.有没有办法避免这种情况,为什么会发生这种情况虽然我没有使用任何特定于最新版本的新功能?

我认为Java应该是"一次编写,随处运行",兼容性问题,即使是最简单的事情,只涉及一点点旧版本,这让我重新思考一些事情!

java compatibility sun jar java-8

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

Java默认接口方法

这是我在Java Tutorial中的简单代码.

public interface AnimalIntf {

    default public String identifyMyself(){
        return "I am an animal.";
    }

}
Run Code Online (Sandbox Code Playgroud)

我得到一个错误:非法启动类型接口方法不能有body.该方法是default,默认关键字在方法签名的开头使用.你能告诉我有什么问题吗?

java interface java-8 default-method

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

Stream <T>接口中filter()方法的实现在哪里?

亲爱的,亲爱的

我有下面的简单代码

class App {
    public static void main(String[] args) {

        ArrayList<Integer> myList = new ArrayList<>();

        myList.add(7);
        myList.add(18);
        myList.add(10);
        myList.add(24);
        myList.add(17);
        myList.add(5);

        Stream<Integer> stream = myList.stream();

        stream = stream.filter(n -> n > 10); // it returns a stream of elements more than 10

        stream.forEach(n -> System.out.print(n + " "));


    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码的功能是它过滤调用流,然后打印所有超过10的元素.Predicate中的测试方法为我们做了..那没关系..但过滤器的实际实现在哪里()方法确实返回超过10的"STREAM"..那是我不明白的!! !! 这个问题在某种程度上也适用于forEach()方法..如何迭代抛出流..

由于filter()和forEach()方法在接口流中是抽象的,因此没有实现.

我需要一个解释..

java abstract java-api java-8 java-stream

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

Java 8中的时间戳用户输入

我正在尝试编写一个简单的java程序,用户将在命令提示符下提供两个时间输入,如开始时间"07:51"和结束时间"08:09".我希望使用24小时时钟来避免AM/PM问题,一旦我得到输入,我应该能够在几分钟内找到两次输入之间的差异.我需要在几分钟后计算其他东西.现在我正在尝试使用java.time.*包,所以我可以LocalTime用来捕获它,但还没有成功.

在Java 8中最简单的方法是什么?我可以使用LocalTime吗?

java java-8 java-time

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

IntelliJ 13.1.6 JDK 8支持

我创建了一个Project SDK设置为的项目1.8 (1.8.0_25).问题是即使System无法解决,如果我切换Project SDK1.7 (1.7.0_71),一切正常.如何解决这个问题?

java intellij-idea java-8

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

尝试在泛型类中应用lambda表达式时输入不匹配编译错误

在下面的Java 8代码示例中,所有方法都是等效的,除了foo3()之外的所有方法都是编译的.

  1. 为什么foo2()编译但foo3()产生编译错误(详见代码注释)?
  2. 为什么javac不允许在foo3中从Object到T的未经检查的强制转换,但是允许在foo4()中从Function <Object,Object>到Function <T,T>的未经检查的强制转换?
  3. 在编译的4种方法中,哪一种最好?

我怀疑这里涉及的Java编译时泛型有一些更好的点,但它们对我来说似乎并不清楚,而且远非显而易见.

import java.util.function.Function;

public class LambdaTest<T> {

  public T foo1(T t) {
    Function<T, T> myIdentity = r -> r;
    return myIdentity.apply(t);
  }

  public T foo2(T t) {
    Function<T, T> identity = Function.identity();
    return identity.apply(t);
  }

  public T foo3(T t) {
    /*  XXX Compile error!
     *  java.lang.Error: Unresolved compilation problem:
     *  Type mismatch: cannot convert from Object to T
     */
    return Function.identity().apply(t);
  }

  @SuppressWarnings("unchecked")
  public T foo4(T t) {
    // unchecked conversion from Function<Object, …
Run Code Online (Sandbox Code Playgroud)

java generics java-8

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

将带有lambda表达式的Java 8代码转换为Java 6

有人可以帮助并向我解释如何将以下Java 1.8代码转换为Java 1.6吗?

private java.util.Optional<Edge<T>> findEdge(Node<T> node) 
{
    return edges.stream()
                .filter(edge -> edge.isBetween(this, node))
                .findFirst();
}

public boolean removeEdge(Node<T> node)
{
    *java.util.Optional<Edge<T>> optional = findEdge(node);*
    if (optional.isPresent())
    {
        return edges.remove(optional.get());
    }
    return false;
}

public boolean hasEdge(Node<T> node)
{
    return findEdge(node).*isPresent();*
}
Run Code Online (Sandbox Code Playgroud)

java lambda java-6 java-8

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

迁移Java 7将循环列表添加到java 8中

我正在将java7代码迁移到Java 8.对于下面在Java 8中发布的代码,可以是等效的(最好是一个衬垫)

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> output = new ArrayList<>(list.size());
for(Integer n : list) {
    int x = n * n * n;
    output.add(x);
}
Run Code Online (Sandbox Code Playgroud)

java java-8

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