小编And*_*mas的帖子

Eclipse RCP:在一个进度对话框中显示并行作业?

我想显示并行运行的多个作业的进度,但只显示一个进度对话框.

但每次调用Job.setUser()似乎都会产生一个新的进度对话框.

我试过了:

  • 在所有作业上设置公共进度组(通过IJobManager.createProgressGroup()获取).
  • 让一个父作业调用setUser()并加入所有并行作业所属的作业系列.(这会导致后台任务在父作业上阻止进度的消息.)

我可以遵循什么模式导致所有并行作业出现在一个进度对话框中?

java rcp eclipse-rcp

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

C中char数组成员的默认值是多少?

假设我创建了一个char数组,并假设char数组为空.如果我检查数组(arr[0])中第一个元素的值,这个表达式的结果是什么?

c arrays default char

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

正则表达式边界匹配器用于行开头(^)和行尾($)不起作用

我有一个模式使用^和$来表示行的开头和结尾.

Pattern pattern = Pattern.compile( "^Key2 = (.+)$" );
Run Code Online (Sandbox Code Playgroud)

并输入如下:

String text = "Key1 = Twas brillig, and the slithy toves"
  + "\nKey2 = Did gyre and gimble in the wabe."
  + "\nKey3 = All mimsy were the borogroves."
  + "\nKey4 = And the mome raths outgrabe.";
Run Code Online (Sandbox Code Playgroud)

pattern.matcher( text ).find()回报false.

这不应该工作吗?在Pattern类文档中,摘要指定:

Boundary matchers
^  The beginning of a line
$  The end of a line

java regex

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

将超类对象作为参数传递给子类构造函数(java)

我做了一些搜索,但我要么没有问正确的问题,要么没有正确记住.在任何情况下,在Java中,我想知道是否可以将超类对象作为参数传递给子类,以及将该对象的数据提供给类的超类的最有效方法.

代码示例:

public class superclass {
  String myparm1;
  String myParm2;
  int myParmN;

  public superclass(String p1, String p2, int pn)
  {
    this.myparm1 = p1;
    this.myparm2 = p2;
    this.myParmN = pn;
  }
  // other methods here
}

public class subclass extends superclass {
  double b1;
  double b2;

  public subclass(superclass sc, double b1, double b2) {
    // easy way to make sc data available to this class?
    // Do I create a copy or clone method, or some other way?
    // calling super(sc); …
Run Code Online (Sandbox Code Playgroud)

java inheritance

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

ArrayList public constructor - "构造一个初始容量为10的空列表" - 在哪里?

请注意,这与为什么启动具有初始容量的ArrayList 重复

查看java.util.ArrayList类的源代码,从至少java 1.8开始,我看到以下代码:

/**
 * Constructs an empty list with an initial capacity of ten.
 */
public ArrayList() {
    this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
Run Code Online (Sandbox Code Playgroud)

哪里

private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
Run Code Online (Sandbox Code Playgroud)

虽然javadoc正式声明:

构造一个初始容量为10的空列表.

我概述:......初始容量为10.这十个在哪里?

我是否完全疯了,错过了什么,或者这里只有一个javadoc错误?

UPD:它看起来像以前的Java 1.8:

public ArrayList(int initialCapacity) {
    super();
    if (initialCapacity < 0)
        throw new IllegalArgumentException("Illegal Capacity: "+
                                           initialCapacity);
    this.elementData = new Object[initialCapacity];
}

/**
 * Constructs an empty list with an initial capacity …
Run Code Online (Sandbox Code Playgroud)

java arraylist

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

加入限制字符串

仅使用标准Java库,什么是将字符串连接到限制的简单机制,并在限制导致更短的字符串时附加省略号?

效率是可取的.加入所有字符串然后使用String.substring()可能会消耗过多的内存和时间.可以在Java 8流管道中使用的机制是可取的,因此甚至可能永远不会创建超过限制的字符串.

就我的目的而言,我很满意以下两种方式表达的限制:

  • 要加入的最大字符串数
  • 结果中的最大字符数,包括任何分隔符.

例如,这是使用标准库在Java 8中强制执行最大数量的连接字符串的一种方法.有更简单的方法吗?

final int LIMIT = 8;

Set<String> mySet = ...;
String s = mySet.stream().limit( LIMIT ).collect( Collectors.joining(", "));
if ( LIMIT < mySet.size()) {
    s += ", ...";
}
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

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

你需要关闭溪流吗?

这个问题分为两部分:

InputStream i1 = new InputStream()和之间有什么区别new InputStream()
并且
是否值得它来创建所有局部变量只是关闭它们?

我知道简单的答案,第一个你可以保留变量,继续使用变量,甚至关闭输入流像一个优秀的程序员.第二个你失去了它的参考,但它看起来更简洁.这两者之间有什么记忆差异吗?速度差(毁灭性)怎么样?

现在来看一些刺激我思想的例子.首先我们使用`'new Object()`而无需抛弃它.

 public void getLongStrings() throws IOException {
        try {
            foo = FileCopyUtils.copyToString(new InputStreamReader(aBook.getInputStream()));
            bar = FileCopyUtils.copyToString(new InputStreamReader(aNovel.getInputStream()));
        }
        catch (IOException ioe) {
            //do something appropriate here;
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在为更详细的方法

public void getLongStrings() throws IOException {
        InputStream i1 = null;
        InputStream i2 = null;
        InputStreamReader isr1 = null;
        InputStreamReader isr2 = null;
        try {
            i1 = aBook.getInputStream();
            i2 = aNovel.getInputStream();
            isr1 = new InputStreamReader(i1);
            isr2 = new …
Run Code Online (Sandbox Code Playgroud)

java syntax inputstream

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

如何防止eclipse 4 RCP应用程序中的浮动编辑器窗口?

Eclipse 4 RCP应用程序支持浮动编辑器窗口.

使用兼容层,我将一组RCP应用程序从Eclipse 3.8移植到Eclipse 4.4.这些应用程序不是为浮动编辑器设计的.我想将重新设计的成本推迟到以后.

注释40中的浮动编辑器窗口Eclipse增强请求提到了控制编辑器窗口策略的可取性:

在e4中,我们理想地能够"托管"当前编辑器或布局中任何位置的视图.选择将其位置限制在编辑区域应该通过一些"政策"来强制执行.

请注意,实际上并非如此简单,主要是由于编辑器处理菜单/ TB的方式根本不同(即托管编辑器的任何地方都需要 - 托管编辑器工具的"主要"工具栏.

问题:

  • 如何关闭浮动编辑器窗口的功能?
  • 我能以一种仍然允许在工作台窗口之间拖动编辑器窗口的方式吗?
  • 或者,如果我们允许浮动编辑器窗口,是否有一种简单的方法可以将现有的ActionBarAdvisor用于新删除的编辑器,以设置其菜单和工具栏?

eclipse-rcp e4

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

在Eclipse 4.4 RCP版本中,"无法获取服务插件转换器".

在更新到最近用于RCP和RAP开发人员的 Eclipse 4.4 IDE Eclipse之后,我们开始在下面为我们的RCP应用程序获取构建错误.这些发生在多个Windows和Mac平台上,在一个没有其他插件的vanilla Eclipse IDE安装中.

  generateFeature:
  [eclipse.generateFeature] The service Plugin converter could not be acquired.
  [eclipse.generateFeature] The service Plugin converter could not be acquired.
  [eclipse.generateFeature] The service Plugin converter could not be acquired.
  ... 
Run Code Online (Sandbox Code Playgroud)

在Eclipse 4.3.2 IDE中构建继续成功.唯一不同的是IDE.(使用"在与工作空间相同的JRE中运行"启动构建,使当前IDE相关.)

谷歌搜索"无法获取插件转换器"导致两个链接,这两个链接都没有特别有用.

如何消除这些错误?

java eclipse-rcp e4

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

通过复制目录安装JRE会影响类数据共享(CDS)吗?

通过Oracle JRE安装程序安装JRE时,安装程​​序会创建一个共享存档,以启用类数据共享(CDS),从而减少JRE进程的启动时间和内存占用.

问题

如果我们的安装程序通过复制JRE目录来安装JRE,那么我们是否会丢失类数据共享?

如果是这样,可以通过java -Xshare:dump从我们自己的安装程序重新生成共享存档(使用)来解决吗?

Java代码中是否有一种机制来检测类数据共享是否处于活动状态?

我们的安装包括一个共享存档(例如,jre/bin/client/classes.jsa),它可能是在我们使用Oracle安装程序安装Java的原始机器上创建的.这有用,无害还是有害?

细节

我们正在使用Java 7.至少在某些机器上,我们使用的是HotSpot客户端VM.

相关问题

"Java代码是保存在本地编译的类数据共享存档(classes.jsa)中还是字节码?" - 接受的答案说原生,但似乎有点猜测.

java installer jvm

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