如果我理解正确的话,这里是一些在 1.5 下非法的示例 java 代码(因为@Override在 java 1.6 之前不能用于重写接口方法):
public class A {
public static interface MyInterface {
public void myInterfaceMethod();
}
public static class MyClass implements MyInterface {
@Override public void myInterfaceMethod() {}
}
}
Run Code Online (Sandbox Code Playgroud)
我想在我的源代码中找到所有此类 1.5 不兼容性,因此我在我的 ubuntu Linux 机器上安装了一个支持 java1.5 的编译器:
sudo apt install openjdk-8-jdk
JAVAROOT=/usr/lib/jvm/java-1.8.0-openjdk-amd64
${JAVAROOT}/bin/javac -version
# javac 1.8.0_232
Run Code Online (Sandbox Code Playgroud)
并编译了上面的java源代码:
${JAVAROOT}/bin/javac -source 1.5 -Xlint:all -Xlint:-options A.java
Run Code Online (Sandbox Code Playgroud)
我预计上面的java代码会被拒绝。但尽管在 1.5 下存在非法行为,但它显然编译成功了。
这是怎么回事?我是否误解了 1.5 规则@Override?或者我误解了-source 1.5应该做什么?
FWIW,我注意到这-source 1.4确实给出了预期的错误:
${JAVAROOT}/bin/javac -source …Run Code Online (Sandbox Code Playgroud) 我正在编写一个用Java 1.5开发的用Swing编写的桌面应用程序.一些用户似乎在使用Mac,但我对Java 6的脚本功能感兴趣(Java 6附带Rhino).Java 6虽然在差不多2年前推出,但似乎并未广泛使用.我也听说Apple仅为Intel 64 Macs提供Java 6.Java 1.5是最后运行的Java吗?
Java 6现在是否已为最终用户桌面应用程序做好准备了?更待何时?
编辑:不要因为我正在使用Swing这个事实而陷入困境.我想知道什么时候Java 6可以被认为是准备黄金时间,而不是UI库的选择.
Java 6的原始版本附带了JAXB 2,但我被告知"后来的"Java 6版本随JAXB 2.1发布.
有谁知道JAXB 2.1附带的第一个Java 6版本是什么?
说我有两个清单:
List<String>products = new ArrayList<String>();
products.add("computer");
products.add("phone");
products.add("mouse");
products.add("keyboard");
List<String>cart = new ArrayList<String>();
cart.add("phone");
cart.add("monitor");
Run Code Online (Sandbox Code Playgroud)
我需要找到产品列表中存在的购物车清单中有多少商品.对于上面的列表,答案是1(因为电话在产品和购物车中).如果购物车清单是:
List<String>cart = new ArrayList<String>();
cart.add("desk");
cart.add("chair");
Run Code Online (Sandbox Code Playgroud)
结果将是0.如果购物车包含计算机,鼠标,桌子,椅子,结果将是2(对于计算机和鼠标).
有什么东西在Apache的百科全书集合或谷歌集合API?我仔细查看过它们,看看如何计算行李数,但不是从另一个列表,尽管我可能会遗漏一些东西.现在,我能想到的唯一方法是迭代购物车商品,看看产品是否包含单个商品并保持计数.我不能使用containsAll,因为我需要count(不是布尔值),如果购物车中的所有商品都不存在于产品列表中(这可能会发生),那么这将失败.
如果重要的话,我正在使用Java 1.6.
我想在我的DecimalFormat上将舍入模式设置为HALF_UP,但是eclipse告诉我在DecimalFormat类上没有setRoundingMode().我的项目属性(以及整个Eclipse属性)使用的是1.6编译器.developer.android.com网站说我可以使用Java 5或6,所以我不确定问题是什么.
import java.math.RoundingMode;
import java.text.DecimalFormat;
completedValueFormatter = NumberFormat.getNumberInstance();
DecimalFormat completedDecimalFormat = (DecimalFormat)completedValueFormatter;
completedDecimalFormat.setRoundingMode(RoundingMode.HALF_UP);
我也尝试使用android工具生成一个基于ant的项目,在项目中尝试了这个代码,并得到了相同的编译错误.所以它似乎与Eclipse无关.它似乎与Android API有关.
有什么建议?
我正在创建一个servlet.Filter实现,其中我在将请求发送到servlet之前,基于IP地址在数据库中查找用户ID.
如果已经有来自同一IP地址的请求在数据库中查找,我希望我的过滤器将传入的请求存储到类似地图的对象中.然后当我从数据库得到响应时,我会将它应用于该IP地址的所有请求,并将它们发送到servlet的路上.
类似地图的对象需要同步,但也要保持插入顺序,这样一旦我找到用户ID,所有存储的请求"将按接收顺序处理".
通过API有一个LinkedHashMap可以维持订单正常但不同步的,它HashTable是同步的,但没有给出任何迹象表明它会保持正确的顺序.
LinkedHashTable我可以使用某种物品吗?
我使用的是Java 6.
我正在为类中的addAndGet方法编写Java(Java 6)源代码AtomicInteger.
相应的代码如下:
public final int addAndGet(int delta) {
for (;;) {
int current = get();
int next = current + delta;
if (compareAndSet(current, next))
return next;
}
}
Run Code Online (Sandbox Code Playgroud)
compareAndSet方法调用本机方法来执行赋值.主要有两个问题:
类似的质疑是与decrementAndGet,getAndDecrement,getAndAdd方法为好.
我需要使用Java 6为大学编译我的源代码.我目前在我的PC(Linux)上安装了Java 8 JDK.如何在Java 6中编译?
ps我明白我将无法使用任何Java 7或8功能.
pps我意识到java 6源代码将使用Java 8 JDK编译好但是我发现在家里编译时我不小心在我的程序中使用了后Java 6功能.当我尝试在uni的实验室计算机上编译源代码时,我遇到了一堆错误.例如,无法将对象转换为基元.
在这里,我试图一个接一个地下载多个文件:
环境-Java 1.6
public List<Attachment> download(List<Attachment> attachments)
{
for(Attachment attachment : attachments) {
attachment.setDownStatus("Failed");
String destLocation = "C:\Users\attachments";
try {
String attUrl = attachment.getUrl();
String fileName = attachment.getFileName();
URL url = new URL(attUrl);
File fileLocation = new File(destLoc, fileName);
FileUtils.copyURLToFile(url, fileLocation);
if(fileLocation.exists()) {
attachment.setDownStatus("Completed");
}
} catch(Exception e) {
attachment.setDownStatus("Failed");
} finally {
attachment.setDestLocation(destLocation);
}
}
return attachments;
}
Run Code Online (Sandbox Code Playgroud)
我正在从提供的URL(http://cdn.octafinance.com/wp-content/uploads/2015/07/google-hummingbird.jpg)下载文件。
FileUtils.copyURLToFile(url, fileLocation);
Run Code Online (Sandbox Code Playgroud)
上面的代码完美地完成了下载工作,没有任何问题。
我的问题:
如果附件列表更多,则将花费更多时间,因此我想使其成为异步或并行过程,而不是顺序下载。
我想验证Hijri日期.在我的应用程序中,Hijri日期将以格式化dd/MM/YYYY.我想在Joda Time API中验证日期是否有效.
例如,我有日期:
String date = "30/02/1403";
String Pattern = "dd/MM/YYYY";
Run Code Online (Sandbox Code Playgroud)
你能帮我验证Hijri约会吗?
我的限制是: