当我在.java文件中时,未使用的代码通常是灰色的或者有一个绿色下划线,说这个代码可能(可能是因为一些奇怪的JNI/Reflection极端情况)未被使用.但我有这个项目有数千个Java文件,我想找到这些可能未使用的代码的所有实例.我怎么能在IntelliJ IDEA中做到这一点?
我查看了JDK和Apache压缩库附带的默认Zip库,我对它们不满意有三个原因:
它们很臃肿,API设计不好.我必须写50行锅炉板字节数组输出,zip输入,文件输出流和关闭相关流并捕获异常并自行移动字节缓冲区?为什么我不能有一个简单的API,它看起来像这样Zipper.unzip(InputStream zipFile, File targetDirectory, String password = null)和Zipper.zip(File targetDirectory, String password = null)刚刚工作的?
它似乎压缩解压缩破坏文件元数据和密码处理被打破.
此外,与我使用UNIX获得的命令行zip工具相比,我尝试的所有库都慢2-3倍?
对我来说(2)和(3)是次要的,但我真的想要一个带有单线界面的良好测试库.
我正在使用一个库,ya-csv,它要求文件或流作为输入,但我有一个字符串.
如何将该字符串转换为Node中的流?
虽然有很好的解决方案可以管理服务器端的依赖关系,但我找不到任何满足我所有需求的连接客户端JavaScript依赖关系管理工作流程.我想满足这5个要求:
bower.jsondependency.json文件中的git repo或实际js文件(在web或本地),用于鲜为人知的库(npm让你指向git repos)<script>在客户端标记中放入的唯一js文件在浏览器中,我应该能够使用require样式:
var $ = require('jquery');
var _ = require('underscore');
Run Code Online (Sandbox Code Playgroud)
或者更好的是,做headjs风格:
head.js(['jquery', 'underscore', 'mylib'], function($, _, mylib) {
// executed when all libraries are loaded
});
Run Code Online (Sandbox Code Playgroud)如果不存在这样的单一工具,那么什么是最好的工具组合,即我可以使用诸如volo(或grunt)之类的东西组合的工具链?
我已经研究了我在这里链接的所有工具,它们最多只能满足我最多3个要求.所以,请不要再发布这些工具.我只接受一个答案,提供满足我所有5个要求的单一工具,或者如果有人发布了具有多个此类工具的工具链的具体工作流程/脚本/工作示例,这些工具也满足我的所有要求.谢谢.
如果我有一个vararg Java方法foo(Object ...arg)并且我打电话foo(null, null),我有两个arg[0]和arg[1]作为nulls.但如果我打电话foo(null),arg本身就是空的.为什么会这样?
我怎么称呼foo这样foo.length == 1 && foo[0] == null的true?
我正在阅读一堆由空格分隔的整数或使用标准中的换行符Scanner(System.in).
有没有更快的方法在Java中这样做?
是否有任何grep选项让我控制匹配的总数但在每个文件的第一次匹配时停止?
例:
如果我这样做,grep -ri --include '*.coffee' 're' .我得到这个:
./app.coffee:express = require 'express'
./app.coffee:passport = require 'passport'
./app.coffee:BrowserIDStrategy = require('passport-browserid').Strategy
./app.coffee:app = express()
./config.coffee: session_secret: 'nyan cat'
Run Code Online (Sandbox Code Playgroud)
如果我这样做grep -ri -m2 --include '*.coffee' 're' .,我会得到这个:
./app.coffee:config = require './config'
./app.coffee:passport = require 'passport'
Run Code Online (Sandbox Code Playgroud)
但是,我真正想要的是这个输出:
./app.coffee:express = require 'express'
./config.coffee: session_secret: 'nyan cat'
Run Code Online (Sandbox Code Playgroud)
做-m1不起作用,因为我得到这个grep -ri -m1 --include '*.coffee' 're' .
./app.coffee:express = require 'express'
Run Code Online (Sandbox Code Playgroud)
尝试不使用grep,例如这find . -name '*.coffee' -exec awk '/re/ {print;exit}' {} \;产生: …
我想记住这个:
def fib(n: Int) = if(n <= 1) 1 else fib(n-1) + fib(n-2)
println(fib(100)) // times out
Run Code Online (Sandbox Code Playgroud)
所以我写了这个,这令人惊讶地编译和工作(我很惊讶,因为fib在其声明中引用自己):
case class Memo[A,B](f: A => B) extends (A => B) {
private val cache = mutable.Map.empty[A, B]
def apply(x: A) = cache getOrElseUpdate (x, f(x))
}
val fib: Memo[Int, BigInt] = Memo {
case 0 => 0
case 1 => 1
case n => fib(n-1) + fib(n-2)
}
println(fib(100)) // prints 100th fibonacci number instantly
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在a中声明fib时def,我得到一个编译器错误:
def foo(n: …Run Code Online (Sandbox Code Playgroud) scope scala memoization dynamic-programming forward-reference
我希望有一个二进制运算符cross(交叉产品/笛卡尔积)在Scala中使用遍历运算:
val x = Seq(1, 2)
val y = List('hello', 'world', 'bye')
val z = x cross y # i can chain as many traversables e.g. x cross y cross w etc
assert z == ((1, 'hello'), (1, 'world'), (1, 'bye'), (2, 'hello'), (2, 'world'), (2, 'bye'))
Run Code Online (Sandbox Code Playgroud)
仅在Scala中执行此操作的最佳方法是什么(即不使用scalaz之类的东西)?
functional-programming scala cartesian-product cross-product
我想从互联网上下载一个zip文件并将其解压缩到内存而不保存到临时文件.我怎样才能做到这一点?
这是我尝试过的:
var url = 'http://bdn-ak.bloomberg.com/precanned/Comdty_Calendar_Spread_Option_20120428.txt.zip';
var request = require('request'), fs = require('fs'), zlib = require('zlib');
request.get(url, function(err, res, file) {
if(err) throw err;
zlib.unzip(file, function(err, txt) {
if(err) throw err;
console.log(txt.toString()); //outputs nothing
});
});
Run Code Online (Sandbox Code Playgroud)
[编辑]正如,建议,我尝试使用adm-zip库,我仍然无法使这项工作:
var ZipEntry = require('adm-zip/zipEntry');
request.get(url, function(err, res, zipFile) {
if(err) throw err;
var zip = new ZipEntry();
zip.setCompressedData(new Buffer(zipFile.toString('utf-8')));
var text = zip.getData();
console.log(text.toString()); // fails
});
Run Code Online (Sandbox Code Playgroud) java ×4
javascript ×3
inputstream ×2
node.js ×2
scala ×2
unzip ×2
zip ×2
code-metrics ×1
coffeescript ×1
compression ×1
grep ×1
memoization ×1
npm ×1
null ×1
optimization ×1
perl ×1
refactoring ×1
regex ×1
scope ×1
shell ×1
stdin ×1
stream ×1
string ×1
unix ×1
zlib ×1