小编Dan*_*Dan的帖子

TrueZip - 如何解压缩内部jar/zip文件而不将它们扩展为目录?

我正在使用TrueZip 7创建一个tzp文件,并使用cp_rp方法将所有目录内容一次性添加到tzp文件中.

之后,我正在尝试将tzp文件的所有内容提取到目标目录.但是,电话:

zipFile = new TFile("test.zip");
public void extract(TFile file){
  for (TFile iFile : zipFile.listFiles()){
    if(iFile.isDirectory()){
       extract(iFile);
    }else{
       File output = new File(iFile.getPath());
       iFile.mv(output);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

失败并出现错误:java.io.IOException:[path]\test.zip\Myjar.jar(目标已存在).如果我使用cp而不是mv,那么错误是[path]\test.zip\Myjar.jar(包含在[path]\test.zip\Myjar.jar中)

问题似乎也是TrueZip将zip和jar识别为目录和档案,因此当对它们执行isDirectory()时,这会成功,并且执行listFiles()会返回其中包含的所有文件,因此运行cp()on文件递归导致所有jar/zip内容被复制为目录.

提取这些存档文件而不扩展它们的正确方法是什么?

java truezip

2
推荐指数
1
解决办法
2446
查看次数

在StandardTokenParsers中使用正则表达式

我正在尝试在基于StandardTokenParsers的解析器中使用正则表达式.为此,我将StdLexical子类化如下:

class CustomLexical extends StdLexical{
  def regex(r: Regex): Parser[String] = new Parser[String] {
    def apply(in:Input) = r.findPrefixMatchOf(in.source.subSequence(in.offset, in.source.length)) match {
      case Some(matched) => Success(in.source.subSequence(in.offset, in.offset + matched.end).toString,
        in.drop(matched.end))
      case None => Failure("string matching regex `" + r + "' expected but " + in.first + " found", in)
    }
  }

  override def token: Parser[Token] =
    (   regex("[a-zA-Z]:\\\\[\\w\\\\?]* | /[\\w/]*".r)     ^^ { StringLit(_) }
      | identChar ~ rep( identChar | digit )               ^^ { case first ~ rest => processIdent(first :: …
Run Code Online (Sandbox Code Playgroud)

parsing scala

2
推荐指数
1
解决办法
1082
查看次数

Scala - 处理对象的初始化(_ vs Option [T])

我知道解决相关问题有多个问题,但我不确定它是否确实会攻击我正在寻找的内容.经过几年的Java开发,我仍然是Scala的新手.我正在寻找测试对象是否已初始化的最佳方法,如果没有,则初始化它.例如,在Java中:

private MyObject myObj = null;
Run Code Online (Sandbox Code Playgroud)

在未来的某个时刻:

public void initMyObj(){
    if (myObj == null){
        myObj = new MyObj();
    }
    // do something with myObj
}
Run Code Online (Sandbox Code Playgroud)

在此之后,我可能会将myObj重新分配给另一个对象,但这不太可能.在Scala中,我有这个:

class Test {
    var myObj: MyObj = _
}
Run Code Online (Sandbox Code Playgroud)

我已经读过我可以使用Option,比如:

var myObj = None : Option[MyObj]
Run Code Online (Sandbox Code Playgroud)

然后我的支票:

myObj match {
  case None => ...
  case Some(value) => ...
}
Run Code Online (Sandbox Code Playgroud)

但是当我在任何其他时间在其他任何地方都不能进行这种检查时,使用这种模式会感到很尴尬 - 尽管Scala是新手,但我可能错了.这是实现我想要的最佳方式还是没有其他选项不涉及选项?

null scala initialization

2
推荐指数
2
解决办法
1862
查看次数

在简单的Jasmine测试中注入$ log服务

是的,我是Angular和Jasmine的新手,我无法弄清楚如何为我的测试注入一个模拟$ log.这是测试:

(function () {
    'use strict';

    describe('basic test', function(){
        it('should just work', function(){
            var $log;

            beforeEach(inject(function(_$log_){
                $log = _$log_;
            }));

            $log.info('it worked!');
            expect($log.info.logs).toContain(['it worked!']);
        });
    });

}())
Run Code Online (Sandbox Code Playgroud)

这在注入行上失败并出现错误:

TypeError: Cannot set property 'typeName' of undefined
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

jasmine angularjs angular-mock

2
推荐指数
1
解决办法
3870
查看次数

将 cacheResultSetMetadata=true 与 MySQL JDBC 连接器一起使用时会缓存哪些元数据?

我正在使用此处列出的不同属性,特别是标记为 Performance Extensions 的属性。我正在使用cacheResultSetMetadata进行测试,但无法找到有关该属性设置为 true 时究竟缓存的内容的文档。

另外,有没有推荐/不推荐使用它的场景?

java mysql jdbc

2
推荐指数
1
解决办法
1322
查看次数

反序列化对象后静态变量的值是多少?

假设我创建了一个B类实例,它有一个静态变量x,在B类声明中赋值为3.在main()方法中,我这样做:

B b = new B();
b.x = 7; //allowed to use an instance to set the static member value
Run Code Online (Sandbox Code Playgroud)

在此之后,b被序列化然后反序列化.然后,出现以下行:

System.out.println ("static: " + b.x);
Run Code Online (Sandbox Code Playgroud)

有什么价值?7或3?

我知道静态变量不是序列化的,但是,因为整个类只有一个静态成员的副本,并且该值设置为7,如果在反序列化实例后保留它?

java serialization static member

1
推荐指数
2
解决办法
4846
查看次数