小编Pop*_*ops的帖子

StringBuilder追加()和null值

我有一个Strings 列表,我想用它们之间的空格连接起来.所以我正在使用StringBuilder.现在,如果有任何Strings null,它们将被StringBuilder字面上存储为"null".这是一个小程序来说明问题:

public static void main(String ss[]) {
    StringBuilder sb = new StringBuilder();

    String s;
    s = null;

    System.out.println(sb.append("Value: ").append(s));
}
Run Code Online (Sandbox Code Playgroud)

我希望输出为"Value:",但它出现为"Value:null"

有没有解决这个问题的方法?

java null stringbuilder append

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

将Eclipse项目类型从general转换为Java

我正在接管另一个团队的项目,并且遇到了一些奇怪的Eclipse问题.

我正在使用Subversive作为我的插件,当我去检查后备箱时,它将我带到一个标准的"Check Out As"对话框,它允许我选择结账方法,并且是唯一适合我的方法(或是适用的)是最后一个选项(Check out as a project with the name specified).

所以我指定了名称,然后项目检查正常,一切都很好,除了...

虽然这应该是一个Java项目(升级到Java Web应用程序),但是制作该项目的团队似乎将其创建为一般项目(通过转到Project > Properties > Resource > Type = 'Project').

因此,Java项目中没有启用任何典型功能,包括(但不限于):

  • F3 不起作用,即使类型在同一个包(本例中的文件夹)中定义为我正在编辑的类型(因为Eclipse不像Java项目那样对待它)
  • 无法搜索Java类
  • 无法从Eclipse内部构建(因为没有源包,只有文件夹)等.
  • 这个清单一直在继续......

所以我的问题是:

  • 有没有办法将此常规项目类型转换为Java项目,而无需创建一个全新的项目并将所有内容复制过来?
  • 我想知道我是否错误地检查了项目,但是没有任何结账方法(在Subversive中)真的适用:(1)Check out as a project configured using the New Project Wizard(为什么检查为新项目?!?),(2)Find projects in the children of the selected resource(no),( 3)Check out as a folder into an existing project(不).
  • 我可以在这里采取其他途径来"Java-ify"这个项目吗?

java eclipse svn subversive

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

UILabel文本没有自动换行

我有一个很长的文本字符串(包括\n换行符),我将其输入到UILabel显示中.该UILabel动态设置,以提供文本足够的空间.

我的代码看起来像这样:

myText = [NSString stringWithFormat:@"%@some text: %@ \n \n %@", myText, moreText1, moreText2];
NSLog(@"%@", myText);
myLabelSize = [vLabelText sizeWithFont:[UIFont fontWithName:@"Helvetica" size:(15.0)] constrainedToSize:cMaxLabelSize lineBreakMode:UILineBreakModeWordWrap];

UILabel *lBody = [[UILabel alloc] initWithFrame:CGRectMake(cFromLeft, vFromTop, vLabelSize.width, vLabelSize.height)];
lBody.font = [UIFont fontWithName:@"Helvetica" size:(15.0)];
lBody.lineBreakMode = UILineBreakModeWordWrap;
lBody.textAlignment =  UITextAlignmentLeft;
lBody.backgroundColor = [UIColor cyanColor];
[myScrollView addSubview:lBody];
lBody.text = vLabelText;
Run Code Online (Sandbox Code Playgroud)

我的问题是文本没有换行,但在第一行后截断.该\n换行被忽略.

iphone xcode objective-c

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

"/*(非javadoc)"是否有一个易于理解的含义?

是否/* (non-javadoc)有一个含义,超越指出,以源代码的读者,一个注释块是不是故意Javadoc注释?最近我看到很多代码看起来像这样:

/*
 * (non-javadoc)
 *
 * This method converts widgets to gizmos
 */
public Foo bar() {
   ...
Run Code Online (Sandbox Code Playgroud)

这是某种既定的惯例吗?如果是这样,它是什么意思(超出明显的字面含义)以及何时使用?

java comments javadoc

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

是什么导致JUnit无视@Ignore注释?

我只是使用MyEclipse自动生成一些JUnit测试用例.其中一个生成的方法如下所示:

@Ignore("Ignored") @Test
public void testCreateRevision()
{
    fail("Not yet implemented"); // TODO
}
Run Code Online (Sandbox Code Playgroud)

@Ignore手动添加了注释.但是,当我运行测试时,JUnit会在"失败"下列出该方法和其他类似方法,而不是忽略它们(相关:JUnit中的失败和错误有什么区别?).它显示"尚未实现"消息而不是"忽略"消息.显然,fail()必须被调用,因此,@Ignore断言不起作用.

这里发生了什么?我需要启用这个设置吗?

编辑:
到目前为止我考虑/尝试过的事情:

  • 我正在使用JUnit 4,所以这不是版本问题.
  • 我正在导入org.junit.Ignore,因此不是Ignore使用错误的情况.
  • 我试过@Ignore单独使用,@Ignore @Test并且@Ignore("message") @Test; 都失败了.

编辑2:
我使用MyEclipse,via创建了测试,New > Other; Java > JUnit > JUnit Test Case; New JUnit 4 test我的构建路径中的库是JUnit 4.我正在使用ant构建并实际运行MyEclipse的案例.

java junit ignore

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

对节点名称中带冒号的XML节点进行XPath查询

什么XPath查询将<media:thumbnail />在以下XML中选择节点?

<item>
  <title>Sublime Federer crushes Wawrinka</title>
  <description>Defending champion Roger Federer cruises past Stanislas Wawrinka 6-1 6-3 6-3 to take his place in the Australian Open semi-finals.</description>
  <link>http://news.bbc.co.uk/go/rss/-/sport2/hi/tennis/9372592.stm</link>
  <guid isPermaLink="false">http://news.bbc.co.uk/sport1/hi/tennis/9372592.stm</guid>
  <pubDate>Tue, 25 Jan 2011 04:21:23 GMT</pubDate>
  <category>Tennis</category>
  <media:thumbnail width="66" height="49" url="http://news.bbcimg.co.uk/media/images/50933000/jpg/_50933894_011104979-1.jpg"/>
</item>
Run Code Online (Sandbox Code Playgroud)

XML来自此RSS源.

xpath

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

为什么堆空间仅在运行JUnit测试时耗尽?

运行JUnit测试时,我似乎总是遇到这个错误:

eclipse outOfMemoryError:堆空间

我用JConsole监视Eclipse,堆内存峰值大约为150MB.我已将堆内存设置为1GB.

我在启动Eclipse时使用以下参数:

-vm "C:\Program Files\Java\jre1.5.0_08\bin\javaw.exe" -vmargs -Xmx1024M
-XX:MaxPermSize=128M -Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

有谁知道可能导致这个问题的原因?它只在运行JUnit测试时发生.

java eclipse junit out-of-memory

25
推荐指数
3
解决办法
4万
查看次数

SVN中的E状态代码是什么意思?

E第一次得到了SVN的状态代码.这是什么意思?update文件说,它的全称是"存在的",但没有给出较详细.

或者,什么是"阻碍路径"?长帮助文件指出"阻塞路径在第一列中报告,代码为'E'."

一些背景:我从工作副本中删除了一个我不应该删除的文件.从SVN更新没有恢复它,所以我创建了一个具有相同文件名的新文件,并将文件的repo副本复制粘贴到其中.

然后我将其添加到版本控制,但是它给它"需要添加到远程存储库的版本化文件"状态,而不是"无本地更改"状态.

使用Subclipse,我在父文件夹中选择了Replace With > Latest from Repository,这发生了:

revert -N C:/foo/Bar.java
    Reverted C:/foo/Bar.java
update C:/foo/Bar.java -r HEAD --force
    E   C:/foo/Bar.java
    Updated to revision 396.
    ===== File Statistics: =====
    Existing: 1
Run Code Online (Sandbox Code Playgroud)

subclipse svn

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

如何使用XPath和Java更新XML

我有一个XML文档,以及该文档的XPath表达式.我必须在运行时使用XPath来更新doc.

我怎么能用Java做到这一点?

以下是我的xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<PersonList>
    <Person>
        <Name>Sonu Kapoor</Name>
        <Age>24</Age>
        <Gender>M</Gender>
        <PostalCode>54879</PostalCode>
    </Person>
    <Person>
        <Name>Jasmin</Name>
        <Age>28</Age>
        <Gender>F</Gender>
        <PostalCode>78745</PostalCode>
    </Person>
    <Person>
        <Name>Josef</Name>
        <Age>232</Age>
        <Gender>F</Gender>
        <PostalCode>53454</PostalCode>
    </Person>
</PersonList>
Run Code Online (Sandbox Code Playgroud)

我必须更改名称和年龄的值//PersonList/Person[2]/Name.

java xml xpath

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

Android的invalidate()和postInvalidate()方法有什么区别?

Android invalidate()postInvalidate()方法有什么区别?每个人何时被召唤?必须只在扩展的类中调用方法View吗?

android invalidation android-layout

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