是否应该强制所有团队成员使用相同的IDE(例如eclipse,netbeans,intellij)进行编程,即使构建过程独立于IDE?(假设项目中没有使用IDE特定的插件等.)
如果每个人都使用相同的IDE,他们可以共享相同的配置并在更一致的环境中工作.但是,如果您已经使用某个IDE多年,那么被迫使用另一个IDE将会令人沮丧并降低工作效率,因为您将尝试学习IDE而不是专注于问题域.
我很想知道你在这两种类型的团队中选择了哪一种,以及你认为哪种团队效果最好.
谢谢
我在java.lang.Class #newInstance0中遇到了一些有趣的代码:
// Run constructor
try {
return tmpConstructor.newInstance((Object[])null);
} catch (InvocationTargetException e) {
Unsafe.getUnsafe().throwException(e.getTargetException());
// Not reached
return null;
}
Run Code Online (Sandbox Code Playgroud)
查看Unsafe.getUnsafe().throwException声明.它看起来像是从一个没有声明它被抛出的方法抛出一个已检查的异常!
他们为什么这么做?
如果Sun开发人员可以使用这种技术,我们也可以这样做吗?
我想保持我的ssh命令隐藏/伪装其他用户.
例:
ssh user@host -i /my/private/key
Run Code Online (Sandbox Code Playgroud)
不幸的是,这将出现在ps列表中,其他用户将能够看到我正在使用的私钥文件.有没有解决的办法?
(他们以与我相同的用户身份登录)
我对maven非常新.我下载了maven 2.0.11版本并将其安装在我的32位redhat linux和JDK 1.4上
安装完成后,我配置了代理设置.当我尝试运行mvn install某个存储库(org)的命令downlaod成功但是它失败并出现如下构建错误:
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot execute mojo: resources. It requires a project with an existing pom.xml, but the build is not using one.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16 second
Run Code Online (Sandbox Code Playgroud)
这个错误是什么意思 ?我错过了什么配置?
我怎样才能下载完整的存储库?
谢谢,
我有一个小的实用程序库,包含一些有用的实用方法,这些方法已经过完全的单元测试 目前,我的库没有外部依赖.我正在考虑将记录添加到我的类中,这可能对调试有用.但这意味着将日志库与我的项目捆绑在一起.
我的问题是:我应该保持我的图书馆依赖免费吗?这样做有什么好处吗?
我有一个简单的记录程序,即:
public class LoggingExample1 {
public static void main(String args[]) {
try {
LogManager lm = LogManager.getLogManager();
Logger logger;
FileHandler fh = new FileHandler("log_test.txt");
logger = Logger.getLogger("LoggingExample1");
lm.addLogger(logger);
logger.setLevel(Level.INFO);
fh.setFormatter(new SimpleFormatter());
logger.addHandler(fh);
// root logger defaults to SimpleFormatter. We don't want messages
// logged twice.
//logger.setUseParentHandlers(false);
logger.log(Level.INFO, "test 1");
logger.log(Level.INFO, "test 2");
logger.log(Level.INFO, "test 3");
fh.close();
} catch (Exception e) {
System.out.println("Exception thrown: " + e);
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到这个日志:
Aug 1, 2011 5:36:37 PM LoggingExample1 main
INFO: test …Run Code Online (Sandbox Code Playgroud) 我的java应用程序使用JNI来调用用C编写的库.这个本机库将错误记录到stderr,但我想以某种方式通过我的log4j记录器重定向错误流.这可能吗?
C库是外部的 - 我没有源代码,因此无法更改它.
谢谢
我正在阅读一个文本文件,其中包含[1,10 ^ 100]范围内的数字.然后,我对每个数字执行一系列算术运算.我想只在数字超出int/long范围时才使用BigInteger.一种方法是计算字符串中有多少位数,如果有太多则切换到BigInteger.否则我只是使用原始算法,因为它更快.有没有更好的办法?
有没有什么理由为什么Java不能自动执行此操作,如果int太小,切换到BigInteger?这样我们就不用担心溢出了.
请考虑以下代码:
public class Outer<T> {
public class Inner{
}
public static <T> Outer<T>.Inner get(){
Object o = new Object();
return (Outer<T>.Inner)o;
}
public static void main(String[] args) throws Exception {
Outer.<String>get();
}
}
Run Code Online (Sandbox Code Playgroud)
此代码在Eclipse中成功编译,但无法编译javac:
Outer.java:10: ')' expected
return (Outer<T>.Inner)o;
^
Outer.java:10: ';' expected
return (Outer<T>.Inner)o;
^
Outer.java:10: illegal start of expression
return (Outer<T>.Inner)o;
^
3 errors
Run Code Online (Sandbox Code Playgroud)
这是javacEclipse中的错误吗?
如果我将演员阵容改为(Outer.Inner)o编译,虽然有警告:
日食:
Outer.Inner is a raw type. References to generic type Outer<T>.Inner should be parameterized
Run Code Online (Sandbox Code Playgroud)
javac的:
Outer.java:10: …Run Code Online (Sandbox Code Playgroud) 在以前的Java版本中,我会通过创建这样的缓冲读取器来读取文件:
BufferedReader in = new BufferedReader(new FileReader("file.txt"));
Run Code Online (Sandbox Code Playgroud)
在Java 7中,我想使用Files.newBufferedReader,但我也需要传入一个charset.例如:
BufferedReader in = Files.newBufferedReader(Paths.get("file.txt"),
Charset.forName("US-ASCII"));
Run Code Online (Sandbox Code Playgroud)
以前,在阅读纯文本文件时,我不必担心字符集.我应该使用什么字符集?你知道在以前版本的Java中默认使用了什么字符集吗?我只是希望能够找到并用新的语句替换旧语句.