我想知道是否有人知道为什么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 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.我编译并创建了一个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 Tutorial中的简单代码.
public interface AnimalIntf {
default public String identifyMyself(){
return "I am an animal.";
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误:非法启动类型接口方法不能有body.该方法是default,默认关键字在方法签名的开头使用.你能告诉我有什么问题吗?
亲爱的,亲爱的
我有下面的简单代码
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程序,用户将在命令提示符下提供两个时间输入,如开始时间"07:51"和结束时间"08:09".我希望使用24小时时钟来避免AM/PM问题,一旦我得到输入,我应该能够在几分钟内找到两次输入之间的差异.我需要在几分钟后计算其他东西.现在我正在尝试使用java.time.*包,所以我可以LocalTime用来捕获它,但还没有成功.
在Java 8中最简单的方法是什么?我可以使用LocalTime吗?
我创建了一个Project SDK设置为的项目1.8 (1.8.0_25).问题是即使System无法解决,如果我切换Project SDK到1.7 (1.7.0_71),一切正常.如何解决这个问题?
在下面的Java 8代码示例中,所有方法都是等效的,除了foo3()之外的所有方法都是编译的.
我怀疑这里涉及的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 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) 我正在将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)