我想显示并行运行的多个作业的进度,但只显示一个进度对话框.
但每次调用Job.setUser()似乎都会产生一个新的进度对话框.
我试过了:
我可以遵循什么模式导致所有并行作业出现在一个进度对话框中?
假设我创建了一个char
数组,并假设char数组为空.如果我检查数组(arr[0]
)中第一个元素的值,这个表达式的结果是什么?
我有一个模式使用^和$来表示行的开头和结尾.
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中,我想知道是否可以将超类对象作为参数传递给子类,以及将该对象的数据提供给类的超类的最有效方法.
代码示例:
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) 请注意,这与为什么启动具有初始容量的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库,什么是将字符串连接到限制的简单机制,并在限制导致更短的字符串时附加省略号?
效率是可取的.加入所有字符串然后使用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) 这个问题分为两部分:
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) Eclipse 4 RCP应用程序支持浮动编辑器窗口.
使用兼容层,我将一组RCP应用程序从Eclipse 3.8移植到Eclipse 4.4.这些应用程序不是为浮动编辑器设计的.我想将重新设计的成本推迟到以后.
注释40中的浮动编辑器窗口的Eclipse增强请求提到了控制编辑器窗口策略的可取性:
在e4中,我们理想地能够"托管"当前编辑器或布局中任何位置的视图.选择将其位置限制在编辑区域应该通过一些"政策"来强制执行.
请注意,实际上并非如此简单,主要是由于编辑器处理菜单/ TB的方式根本不同(即托管编辑器的任何地方都需要 - 托管编辑器工具的"主要"工具栏.
问题:
在更新到最近用于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相关.)
谷歌搜索"无法获取插件转换器"导致两个链接,这两个链接都没有特别有用.
如何消除这些错误?
通过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 ×8
eclipse-rcp ×3
e4 ×2
arraylist ×1
arrays ×1
c ×1
char ×1
default ×1
inheritance ×1
inputstream ×1
installer ×1
java-8 ×1
java-stream ×1
jvm ×1
rcp ×1
regex ×1
syntax ×1