我想用JDK 7 64bit进行android开发.但是在android开发的系统需求中,据说它需要"JDK 5或JDK 6".如果我想使用最新的Android SDK和新的eclipse IDE 64bit最新的JDK 64bit有什么问题吗?
注意:
我们都听说过在Java 7中我们可以写:
try {
//something with files and IO
} catch (FileNotFoundException | IOException ex) {
ex.printStackTrace();
System.out.println("It's can't copy file");
}
Run Code Online (Sandbox Code Playgroud)
代替
try {
//something with files and IO
} catch (FileNotFoundException wx) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但是,除了更短的代码之外,它还有什么好处呢?
即使我们希望在每个catch块中完成相同的操作,我们也可以:
那么,此功能仅用于更干净的代码或其他任何内容吗?
谢谢.
我正在尝试从jre6和jdk6升级到jre7和jdk7.我使用eclipse编程,我下载并安装了jre7和jdk7:C:\ program files\java \now当我进入eclipse时我想改变使用的编译器所以我去:window> preferences> java> compiler但是出现了只有1.3,1.4,1.5和1.6我也输入了:window> preferences> java>安装了JRE并添加了jre7版本.但编译器我无法改变.我该如何更改我的eclipse编译器?
这是一个关于讨论的后续问题:
为什么菱形运算符不能在Java 7中的addAll()调用中工作?
从Java教程中,
http://docs.oracle.com/javase/tutorial/java/generics/gentypeinference.html
请注意,钻石通常用于方法调用; 但是,为了更加清晰,建议您主要使用钻石来初始化声明它的变量
所以,我对第一行感到有点困惑.当确实在方法调用钻石的工作?
关于钻石操作员如何工作的更多解释可以在这里找到:
从这个,我尝试了以下,这很好:
给我有:
private static class Box<T>{
public Box(T t){}
}
static void f(Box<Integer> box){}
Run Code Online (Sandbox Code Playgroud)
像下面这样的调用编译好:
f(new Box<>(new Integer(10)));
Run Code Online (Sandbox Code Playgroud)
在f()上面的方法调用中调用构造函数的类型参数是从构造函数的参数推断出来的(即Integer).
这就是本教程所说的意思
请注意,钻石通常用于方法调用
如果没有,任何人都可以提供钻石在方法调用中工作的示例吗?
Android SDK要求声明需要JDK 5或JDK 6.
但是,我有一个用Java 7编写的Java类库,我想将它用于我的Android项目.
而不是手动将Java 7手动转换为Java 6,我想知道是否有人知道可以为我做这个工作的转换器?
或者我们是否必须从头开始编码?
我期望能发现XMLStreamReader是AutoCloseable在Java 7中.然而,事实并非如此.是否存在技术原因导致StAX读取器/写入器接口未被(或不应该)改进以实现AutoCloseable?他们已经有了密切的方法,其意图与密切方法没有区别AutoCloseable.
我在执行以下代码时遇到这个奇怪的错误.
EncoderRequest encoderRequest = new EncoderRequest(sid,appTxnId,pfid,transactionType,"",isUpdatetype9,true);
Run Code Online (Sandbox Code Playgroud)
我检查了所有参数值是否有效.我使用的是java7平台.任何人都可以遇到这种情况,请帮忙.
以下是我得到的stacktrace的一部分.
Caused by: java.lang.ClassFormatError: Illegal local variable table length 48 in method com.cmc.facts.encoder.EncoderRequest.<init>(JLjava/lang/String;Ljava/lang/Long;Lcom/cmc/facts/enums/TransactionType;Ljava/lang/String;ZZ)V at com.cmc.facts.nist.NistReaderModel.preprossingOfNistFile(NistReaderModel.java:180) at com.cmc.facts.action.interstate.InterStateAction.uploadFIIF(InterStateAction.java:645) ... 115 more
我使用JAX-WS作为客户端.我曾经使用以下系统属性来记录所有HTTP请求和响应以进行调试:
com.sun.xml.ws.transport.local.HTTPTransportPipe.dump=true
Run Code Online (Sandbox Code Playgroud)
但是,由于升级到Java 1.7并使用内置的JAX-WS(而不是外部库),此功能已停止工作.
我已经做了很多搜索,以找到1.7中的等效物但是没有运气.有人知道如何记录输出吗?
谢谢你的帮助
这是一段不能编译的代码:
void multiCatch()
{
try {
throwIOFile();
}
// FileNotFoundException extends IOException, hence this
// does not compile ("alternatives" related by sub classing):
catch (IOException | FileNotFoundException e) { }
}
void throwIOFile() throws IOException, FileNotFoundException
{}
Run Code Online (Sandbox Code Playgroud)
一切都像魅力一样,没有与子类别相关的异常类型.如果您IOException在我的代码片段中交换说.. SQLException,它可以工作.该规范内容如下:
如果类型的并集包含两个备选Di和Dj(i≠j),则其是编译时错误,其中Di是Dj的子类型.
我无法理解这背后的理由.当然,我的例子中的多次捕获是完全多余的,因为我也可以只捕获一个IOException.但是,使我的代码片段合法会有什么危害?当然,违法行为必然会造成伤害吗?
我有一个@SuiteClasses和许多junit测试类扩展它,并且新的测试类在
我现在有这个测试套件的时候扩展它
@RunWith(Suite.class)
@SuiteClasses({ATest.class, BTest.class, CTest.class})
public class AllTests {}
Run Code Online (Sandbox Code Playgroud)
ATest,BTest,CTest,...,ZTest扩展@SuiteClasses
如何创建一个动态运行所有子类的junit测试套件,@SuiteClasses而不必@SuiteClasses使用Junit,仅限java-7,没有第三方手动列出它们.
我找到了解决方案
https://gist.github.com/amgadhanafy/b172cf776bfe313762d38480e17f4517
java-7 ×10
java ×9
android ×2
eclipse ×2
java-ee ×1
jax-ws ×1
junit ×1
multi-catch ×1
stax ×1
test-suite ×1
types ×1
unit-testing ×1