在跑步的时候
sencha app build production
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误:注册表项'Software\JavaSoft\Java Runtime Environment'\ CurrentVersion'
值为'1.8',但需要'1.7'.错误:找不到java.dll错误:找不到Java SE Runtime Environment.
java -version ,命令显示如下:
java版"1.8.0_40"Java(TM)SE运行时环境(版本1.8.0_40-b26)Java HotSpot(TM)64位服务器VM(版本25.40-b25,混合模式)
无法找到路径出错的地方.任何的想法?
-----------------------编辑-------------------------- ----------------------
注意:我使用的是Windows 7(64位).
我已经尝试卸载sencha touch cmd并重新安装.但仍然是同样的错误.
我已经卸载了所有的java版本实例并重新安装了最新的版本,问题仍然存在.
JDK 8中的新功能允许您在保留二进制兼容性的同时添加到现有接口.
语法就像
public interface SomeInterface() {
void existingInterface();
void newInterface() default SomeClass.defaultImplementation;
}
Run Code Online (Sandbox Code Playgroud)
这种方式对于所有现有的实现,SomeInterface当它们升级到这个新版本时,它们并不会突然编译错误newInterface().
虽然这很简洁,但当你实现两个接口时会发生什么呢?两个接口都添加了一个你没有实现的新默认方法?让我举个例子来解释一下.
public interface Attendance {
boolean present() default DefaultAttendance.present;
}
public interface Timeline {
boolean present() default DefaultTimeline.present;
}
public class TimeTravelingStudent implements Attendance, Timeline {
}
// which code gets called?
new TimeTravelingStudent().present();
Run Code Online (Sandbox Code Playgroud)
这被定义为JDK 8的一部分了吗?
我发现Java神在这里谈论类似的东西http://cs.oswego.edu/pipermail/lambda-lib/2011-February/000068.html,但它是私人邮件列表的一部分,我不能直接问他们.
有关如何在JDK 8中使用默认值以及扩展Collection接口以支持lambdas的更多详细信息,请参阅此处:https: //oracleus.wingateweb.com/published/oracleus2011/sessions/25066/25066_Cho223662.pdf
我有一个包含项目列表的大文件.
我想创建一批项目,使用此批处理发出HTTP请求(所有项目都需要作为HTTP请求中的参数).我可以通过for循环很容易地完成它,但作为Java 8的爱好者,我想尝试用Java 8的Stream框架编写它(并获得延迟处理的好处).
例:
List<String> batch = new ArrayList<>(BATCH_SIZE);
for (int i = 0; i < data.size(); i++) {
batch.add(data.get(i));
if (batch.size() == BATCH_SIZE) process(batch);
}
if (batch.size() > 0) process(batch);
Run Code Online (Sandbox Code Playgroud)
我想做一些很长的路要走
lazyFileStream.group(500).map(processBatch).collect(toList())
最好的方法是什么?
Java中的接口类似于类,但接口的主体只能包含抽象方法和
final字段(常量).
最近,我看到了一个问题,看起来像这样
interface AnInterface {
public default void myMethod() {
System.out.println("D");
}
}
Run Code Online (Sandbox Code Playgroud)
根据接口定义,只允许抽象方法.为什么它允许我编译上面的代码?什么是default关键字?
另一方面,当我试图写下面的代码时,它说 modifier default not allowed here
default class MyClass{
}
Run Code Online (Sandbox Code Playgroud)
代替
class MyClass {
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我default关键字的目的?是否只允许在界面内?它与default(无访问修饰符)有何不同?
我在这里看过这篇文章.但我仍然无法在minSdkVersion <24上运行包含Java 8 Stream API功能的代码,如下所示.
List<Car> newCars = cars.stream()
.filter(s -> s.getColor().equals("red"))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
由于错误消息,这不会运行
调用需要API级别24(当前最小值为15):java.util.Collection #stream
那么有人知道解决方案吗?
我正在阅读以下新功能:http://www.javaworld.com/article/2078836/java-se/love-and-hate-for-java-8.html
我看到了下面的例子:
使用匿名类:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
System.out.println("Action Detected");
}
});
Run Code Online (Sandbox Code Playgroud)
使用Lambda:
button.addActionListener(e -> {
System.out.println("Action Detected");
});
Run Code Online (Sandbox Code Playgroud)
MouseListener如果他们想在匿名类中实现多个方法,有人会做什么,例如:
public void mousePressed(MouseEvent e) {
saySomething("Mouse pressed; # of clicks: "
+ e.getClickCount(), e);
}
public void mouseReleased(MouseEvent e) {
saySomething("Mouse released; # of clicks: "
+ e.getClickCount(), e);
}
Run Code Online (Sandbox Code Playgroud)
... 等等?
Java 8引入CompletableFuture了一个可组合的Future的新实现(包括一堆thenXxx方法).我想独占使用它,但我想使用的许多库只返回不可组合的Future实例.
有没有办法将返回的Future实例包装在一个内部,CompleteableFuture以便我可以编写它?
你好Java开发人员,
我知道主题可能有点 in advance因为JDK8尚未发布(现在还不是.)但我正在阅读一些关于Lambda表达式的文章,特别是与新集合API相关的部分,称为Stream.
以下是Java Magazine文章中给出的示例(它是一个水獭种群算法..):
Set<Otter> otters = getOtters();
System.out.println(otters.stream()
.filter(o -> !o.isWild())
.map(o -> o.getKeeper())
.filter(k -> k.isFemale())
.into(new ArrayList<>())
.size());
Run Code Online (Sandbox Code Playgroud)
我的问题是如果在Set内部迭代的中间,其中一个otter为null会发生什么?
我希望抛出NullPointerException,但也许我仍然坚持以前的开发范例(非功能),有人可以启发我应该如何处理它?
如果这确实抛出了NullPointerException,我发现该功能非常危险,只能如下所示:
什么是最佳选择,或任何其他选择?
谢谢!
在Java 8中工作,我有这样的TreeSet定义:
private TreeSet<PositionReport> positionReports =
new TreeSet<>(Comparator.comparingLong(PositionReport::getTimestamp));
Run Code Online (Sandbox Code Playgroud)
PositionReport 是一个相当简单的类定义如下:
public static final class PositionReport implements Cloneable {
private final long timestamp;
private final Position position;
public static PositionReport create(long timestamp, Position position) {
return new PositionReport(timestamp, position);
}
private PositionReport(long timestamp, Position position) {
this.timestamp = timestamp;
this.position = position;
}
public long getTimestamp() {
return timestamp;
}
public Position getPosition() {
return position;
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用.
现在我想删除TreeSet positionReportswhere timestamp比某个值更旧的条目.但我无法弄清楚正确的Java 8语法来表达这一点.
这个尝试实际上是编译的,但是给了我一个TreeSet带有未定义比较器的新东西: …
java ×10
java-8 ×10
java-stream ×3
interface ×2
android ×1
closures ×1
collections ×1
datetime ×1
default ×1
future ×1
java-time ×1
lambda ×1
mocking ×1
null ×1
sencha-cmd ×1
sencha-touch ×1