小编iva*_*off的帖子

是否有一个标准类包装引用并提供getter和setter?

抱歉这个愚蠢的问题.

我非常确定,Java API提供了一个包装引用的类,并为它提供了一个getter和setter.

class SomeWrapperClass<T> {
    private T obj;

    public T get(){ return obj; }

    public void set(T obj){ this.obj=obj; }
}
Run Code Online (Sandbox Code Playgroud)

我对吗?Java API中是否有这样的东西?

谢谢.

是的,我可以自己写,但为什么我应该模仿现有的功能呢?

编辑:我想将它用于参考参数(如C#中的ref关键字),或更具体,以便能够"写入方法参数";)

java wrapper

4
推荐指数
1
解决办法
322
查看次数

Netbeans:创建自定义构建目标以将源打包到JAR ......?

我更具体地问这个问题:

使用Netbeans,是否有可能创建一个额外的自定义构建目标,它将:

  • 要么将所有项目源以及二进制文件打包成单个JAR,
  • 或者将没有二进制文件的所有项目源打包到一个额外的JAR中

笔记:

  • 不能在项目属性中修改文本字段"从JAR文件中排除:",因为它不会为我提供额外的 构建目标;)
  • 你可以猜到,这是一个开源项目;)

java packaging netbeans jar netbeans6.8

4
推荐指数
1
解决办法
7548
查看次数

对于需要相互调用的两种方法:如何防止无限循环?

我有两个类(A和B),它们在以下意义上相互依赖:
每个类都有一个执行某些操作的方法.
每个类的动作取决于另一个类的动作.

因此,如果用户调用类A的操作,它应该自动调用类B的操作.
对于另一种方式.但是应该防止无限循环.

我找到了一些处理这个问题的代码,但对我来说似乎有些愚蠢:锁定阻止了无限循环.

import java.util.concurrent.locks.*;
import static java.lang.System.*;
import org.junit.*;

public class TEST_DependentActions {

  static class A {
    private B b = null;
    private final ReentrantLock actionOnBLock = new ReentrantLock();

    public void setB(B b) {
      this.b = b;
    }

    public void actionOnB() {
      if (!actionOnBLock.isLocked()) {
        actionOnBLock.lock();
        b.actionOnA();
        actionOnBLock.unlock();
      }
    }
  }

  static class B {
    private A a = null;
    private final ReentrantLock actionOnALock = new ReentrantLock();

    public void setA(A a) {
      this.a = …
Run Code Online (Sandbox Code Playgroud)

java design-patterns

3
推荐指数
1
解决办法
2975
查看次数

读取JAR文件的内容(在运行时)?

我看过帖子:

查看.jar​​文件的内容
以及
如何列出JAR文件中的文件?

但遗憾的是,我找不到一个好的解决方案来实际读取 JAR的内容(逐个文件).

此外,有人可以给我一个提示,或指向一个资源,我的问题在哪里讨论?

我只能想到一个不那么直接的方法来做到这一点:
我可以以某种方式将JAR资源列表转换为内部JAR URL列表,然后我可以使用openConnection()打开它.

java api jar

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

Linux:这是一种并行运行脚本的正确方法吗?

我想使用脚本一次更新大量SVN版本的项目.一个接一个地运行更新作业需要很长时间.

所以我试着并行运行这些工作.它似乎工作,但我不确定它是否正确完成.也许有没有我想到的并发问题?

请看一下脚本:

#!/bin/sh

time (
    for f in `ls -d */`
    do
        (
            OUTPUT=`svn update $f`
            echo -e "= = = = = = = = = = $f \n$OUTPUT"
        ) &
    done

    wait
)
Run Code Online (Sandbox Code Playgroud)

当我不先存储输出时,它会全部混淆.

你觉得,这样可以吗?

注意:当没有很多要更新时,40个项目的加速度实际上是20左右.

linux svn bash shell concurrency

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