最近我开始探索Java 8,我无法理解Java功能实现lambda表达式所必需的"功能接口"的概念.有一个非常全面的 Java函数中的lambda函数指南,但我仍然坚持用于定义函数接口概念的章节.定义如下:
更确切地说,功能接口被定义为具有恰好一个抽象方法的任何接口.
然后他进入示例,其中一个是Comparator界面:
Run Code Online (Sandbox Code Playgroud)public interface Comparator<T> { int compare(T o1, T o2); boolean equals(Object obj); }
我能够测试我可以使用lambda函数代替Comparator参数,它可以工作(即Collections.sort(list, (a, b) -> a-b)).
但是在Comparator接口中,两者compare和equals方法都是抽象的,这意味着它有两个抽象方法.那么如果定义要求接口只有一个抽象方法,那么它如何工作呢?我在这里错过了什么?
现在我正在做
for (char c = 'a'; c <= 'z'; c++) {
alphabet[c - 'a'] = c;
}
Run Code Online (Sandbox Code Playgroud)
但是有更好的方法吗?与Scala相似'a' to 'z'
什么是PHP的Java等价物$_POST?在网上搜索了一个小时后,我仍然离我更近了.
我有一个可执行的JAR文件.是否可以创建该JAR的Windows服务?实际上,我只想在启动时运行它,但我不想将JAR文件放在我的启动文件夹中,也不要在注册表中.
对于以下Period计算:
Period.between(LocalDate.of(2015, 8, 1), LocalDate.of(2015, 9, 2))
Run Code Online (Sandbox Code Playgroud)
结果是:
P1M1D
Run Code Online (Sandbox Code Playgroud)
这相当于31天+ 1天= 32天.
为此Period:
Period.between(LocalDate.of(2015, 8, 1), LocalDate.of(2015, 10, 2))
Run Code Online (Sandbox Code Playgroud)
结果是:
P2M1D
Run Code Online (Sandbox Code Playgroud)
这相当于:31天(8月)+ 30天(9月)+ 1(10月)= 62天
包中是否有一个方法java.time可以给出一个天数Period?我找不到一个.不确定我是否忽略了任何东西,或者它是否只是在那里.
以下是有效的枚举声明.
public enum SomeEnumClass {
ONE(1), TWO(2), THREE(3);
private int someInt;
public SomeEnumClass(int someInt) {
this.someInt = someInt;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我可以用枚举类型覆盖抽象类吗?
SomeEnumClass.java
public abstract enum SomeEnumClass {
private int someInt;
public SomeEnumClass(int someInt) {
this.someInt = someInt;
}
}
Run Code Online (Sandbox Code Playgroud)
OverridingEnumClass.java
public enum OverridingEnumClass extends SomeEnumClass {
ONE(1), TWO(2), THREE(3);
}
Run Code Online (Sandbox Code Playgroud)
如果没有,为什么不呢?什么是好的选择?
如果未定义CSS font-face和font-size属性,如何获取元素的实际字体和字体大小?
例如,JavaScript代码段
object.style.fontFamily
Run Code Online (Sandbox Code Playgroud)
不会返回任何价值.这很明显,假设CSS没有将样式应用到object任何地方.但是,当然,某种字体用于呈现文本,可能是系统字体或webbrowser默认字体.
那么,例如,JavaScript可以获得渲染的字体吗?
如何获得比Long.MAX_VALUE更大的长数字?
我想要这个方法返回true:
boolean isBiggerThanMaxLong(long val) {
return (val > Long.MAX_VALUE);
}
Run Code Online (Sandbox Code Playgroud) 当我尝试打开一个用jsoup解析的链接时,我收到一个错误.
连接命令:
Document doc = Jsoup.connect("http://www.rfi.ro/podcast/emisiune/174/feed.xml")
.timeout(10 * 1000).get();
Run Code Online (Sandbox Code Playgroud)
抛出的错误:
Exception in thread "main" org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml. Mimetype=application/rss+xml; charset=utf-8, URL=http://www.rfi.ro/podcast/emisiune/174/feed.xml
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:453)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:153)
at podcast.Pods.main(Pods.java:41)
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个可以获取值的Java程序,并将它们放入涉及日志库10的公式中.
如何在Java中计算log 10?