小编Ste*_*iks的帖子

Java - 创建一个具有指定长度并填充特定字符的新String实例.最佳方案?

我确实检查了其他问题; 这个问题的重点是以最有效的方式解决这个特定问题.

有时您希望创建一个具有指定长度的新字符串,并使用填充整个字符串的默认字符.

也就是说,如果你可以new String(10, '*')从那里创建一个新的字符串会很酷,长度为10个字符都有*.

因为这样的构造函数不存在,并且您无法从String扩展,所以您要么创建一个包装类,要么为您执行此方法.

此刻我正在使用这个:

protected String getStringWithLengthAndFilledWithCharacter(int length, char charToFill) {
    char[] array = new char[length];
    int pos = 0;
    while (pos < length) {
        array[pos] = charToFill;
        pos++;
    }
    return new String(array);
}
Run Code Online (Sandbox Code Playgroud)

它仍然没有任何检查(即,当长度为0时,它将不起作用).我首先构造数组,因为我相信它比使用字符串连接或使用StringBuffer更快.

其他人有更好的解决方案吗?

java string

79
推荐指数
9
解决办法
14万
查看次数

java.sql中的日期时间等价物?(有java.sql.datetime吗?)

到目前为止,我还没有找到明确答案.

我想知道使用PreparedStatement对SQL类型DATETIME和java类型的等价物.

我发现:http://www.java2s.com/Code/Java/Database-SQL-JDBC/StandardSQLDataTypeswithTheirJavaEquivalents.htm

但是它声明SQL类型"DATETIME"与sql.date相同,但在查看SQL date docs时(http://download.oracle.com/javase/7/docs/api/java/sql/Date. html),它说时间被截断(全为零).

我想要的是能够指定一种preparedStatement.setDateTime()或某种类型.

我看到的唯一另一种方法是使用时间戳,但这需要我更改列类型,而我无法想象以前其他人从未遇到过这个问题?

任何提示?

编辑:我正在使用MYSQL.

java mysql sql datetime jdbc

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

单元测试 - 合同变更的单元测试的好处?

最近我与一位同事就单元测试进行了一次有趣的讨论.当合同发生变化时,我们正在讨论何时维持单元测试的效率降低.

也许任何人都可以告诉我如何解决这个问题.让我详细说明:

所以我们假设有一个类可以做一些漂亮的计算.合同说它应该计算一个数字,或者当它由于某种原因失败时返回-1.

我有合同测试谁测试.在我所有的其他测试中,我将这个漂亮的计算器存在.

所以现在我改变了契约,只要它无法计算就会抛出一个CannotCalculateException.

我的合同测试将失败,我将相应地修复它们.但是,我所有的模拟/存根对象仍将使用旧的合同规则.这些测试将成功,而他们不应该!

提出的问题是,凭借对单元测试的这种信念,可以对这些变化有多少信心......单元测试成功,但在测试应用程序时会出现错误.使用这个计算器的测试需要修复,这需要花费时间,甚至可能很多时候被抄袭/嘲笑......

你觉得这个案子怎么样?我从来没有想过它.在我看来,单元测试的这些变化是可以接受的.如果我不使用单元测试,我也会在测试阶段(测试人员)看到这样的错误.然而,我没有足够的信心指出什么会花费更多的时间(或更少).

有什么想法吗?

unit-testing design-by-contract

51
推荐指数
3
解决办法
2408
查看次数

如何使用正则表达式过滤掉不需要的字符的字符串?

基本上,我想知道是否有一个方便的类或方法来过滤不需要的字符串.方法的输出应该是'clean'字符串.即:

String dirtyString = "This contains spaces which are not allowed"

String result = cleaner.getCleanedString(dirtyString);
Run Code Online (Sandbox Code Playgroud)

期待结果将是:

"Thiscontainsspaceswhicharenotallowed"
Run Code Online (Sandbox Code Playgroud)

一个更好的例子:

String reallyDirty = " this*is#a*&very_dirty&String"

String result = cleaner.getCleanedString(dirtyString);
Run Code Online (Sandbox Code Playgroud)

我希望结果如下:

"thisisaverydirtyString"
Run Code Online (Sandbox Code Playgroud)

因为,我让清洁工知道'','*','#','&'和'_'是脏字符.我可以通过使用白色/黑色列表字符来解决它.但我不想重新发明轮子.

我想知道是否已经存在可以使用正则表达式"清理"字符串的事情.而不是自己写这个.

另外:如果你认为清洁字符串可以不同/更好地完成,那么我当然也都是耳朵

另外一个补充: - 它不仅适用于空间,也适用于任何类型的角色.

java regex

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

Java - 如何知道线程何时等待?

知道线程何时进入wait状态是否有任何简洁的解决方案?当我需要它时wait,我正在为notify它们提供线程.但有时候我想知道线程当前是否在等待,如果是,我必须做其他事情.

我可能会自己设置一个标志为true/false.但我无法想象还有更好的方法吗?

java multithreading

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

使用IntelliJ在webapp运行配置中使用maven覆盖?

我正在开发一个基于玉兰的网站.我正在使用webapp原型来创建一个新的Web应用程序.使用命令行,我能够生成一个WAR并将其部署在我的容器(Tomcat)中.我然后运行它,它工作正常.

我的下一步是将我的项目结构导入IntelliJ.IntelliJ认为一切都很好,并且能够编译所有内容.我先测试了maven clean,然后让IntelliJ完成其余的工作(重建项目).

最后一步是让它在我的容器中运行.我之前为网络应用设置了运行配置(他们不使用战争叠加),他们工作得很好.在这种情况下,我像以前一样设置它并指向我的爆炸webapp工件.

一旦我运行tomcat,它就找不到我的webapp.我发现覆盖层还没有合并到项目的目标目录中(通常就是在进行maven安装时).然而,IntellJ在我的项目中创建了一个覆盖目录,并在那里解压缩(overlay/super)WAR文件.

当我自己进行maven安装时,我得到它的工作,然后在IntelliJ中运行Tomcat.这是显而易见的,因为现在所有需要的文件都在我的目标目录中(例如web.xml):).

我想要的是: - IntelliJ知道当它运行Tomcat时,它应该像"mvn install"或"mvn package"那样准备目标目录.

它的作用: - 它介于两者之间.它确实创建了一个目标目录,它确实从webapp项目中复制资源.它不会覆盖任何WAR依赖项,因此webapp目标目录不完整.

任何人有任何解决这个问题的技巧?

tomcat overlay intellij-idea magnolia maven

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

自动装配地图无法按预期工作

我正在使用Spring 3.0.4.我有一些在地图上使用@Autowired注释的bean.这些映射在application-context.xml文件中定义(因为这些映射是使用多个工厂方法构造的).

当我使用我的调试器时,我可以看到使用正确的(预期的)bean id构建映射.但是,一旦自动装配过程开始,它声称它找不到具有刚刚创建的id的bean.

一段代码:

@Autowired
@Qualifier("dienstverbandMap")
private Map<String, String> dienstverbandMap;
Run Code Online (Sandbox Code Playgroud)

一段上下文xml:

<bean class="java.util.HashMap" id="dienstverbandMap" factory-bean="someFactoryMethod" factory-method="getMappedMap"/>  
Run Code Online (Sandbox Code Playgroud)

重要的细节,当我在我的类和上下文xml中将类型更改为java.lang.Object时,它确实已经连接了实际上,我可以将其转换为代码中的HashMap并使一切正常工作.但这显然不是我想要的.

有人解释我做错了吗?

java spring ioc-container

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

如何衡量稳健性?

我正在撰写关于测量产品质量的论文.本案例中的产品是一个网站.我已经确定了几个质量属性和测量技术.

一个质量属性是"健壮性".我想以某种方式向我保证,但我找不到任何有用的信息如何以客观的方式做到这一点.

是否存在可以确保稳健性的静态或动态指标?即,就像单元测试覆盖一样,有没有一种方法可以确保这样的稳健性?如果是这样,是否有任何(免费)工具可以做这样的事情?

有没有人有这种工具的经验?

最后但并非最不重要的是,也许还有其他方法可以确定稳健性,如果您有任何想法,我会全神贯注.

非常感谢提前.

java software-quality robustness

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

Hibernate的; HQL; 为什么删除查询不起作用,但选择呢?

我想从表中删除某些记录.这些记录在其他表中有一些子记录.

为了能够删除主记录,我必须先删除子记录.

以下是使用的HQL示例:

delete from ItineraryBooking ib where ib.booking.user.id = :paramId
Run Code Online (Sandbox Code Playgroud)

基本上,这应该删除所有ItineraryBookings(单独表中的记录),这些都加入到Booking表中.可以使用User表连接Booking表.

奇怪的是,当您将上述内容更改为:

from ItineraryBooking ib where ib.booking.user.id = :paramId
Run Code Online (Sandbox Code Playgroud)

并执行Query.list(),它会正常工作.

每当我想执行delete变体时,看起来Hibernate会生成一个奇怪的删除语句.我的HQL错了吗?还是Hibernate的怪癖?

java hibernate hql

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

Java - 检索列表中的类型数量

我有一份清单.该列表可以包含相同枚举类型的多个项目.

可以说我有一个枚举:TOY具有值:BALL,DOLL,PLAYSTATION.我想知道PLAYSTATION具有类型的列表中有多少项TOY.(即List<Toy>玩具)

什么是最好的解决方案?我不想每次都在列表中进行迭代.

java collections enums list

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

为什么不调用UIPinchGestureRecognizer,而scrollViewDidEndZooming是?

我有一个UIViewController,它使用UIScrollView,在Scrollview中它有一个UIImageView.

我想识别相应的捏合和缩放.我不需要缩放,我只需要显示不同的图像.

它几乎看起来像这个问题:UIView UIPinchGestureRecognizer问题

我尝试了几件事:

  • 将contentMode设置为 UIViewContentModeScaleAspectFit

  • multipleTouchEnabled = YES

  • userInteractionEnabled = YES

然而,它仍然不总能抓住捏合事件.

以下是我将手势分配给视图的方式,非常简单:

   UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(zoomPinch:)];
    [MediaScroller addGestureRecognizer:pinchRecognizer];
    [pinchRecognizer release];
Run Code Online (Sandbox Code Playgroud)

另外,我注意到scrollViewDidEndZooming我的委托调用了,但scale变量总是1.0.怎么可能?

scrollViewDidEndZooming总是被调用,而掐法(zoomPinch)并不总是叫.出现这种情况的原因是什么?我该如何解决?:)

objective-c gesture ios

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

接口 - >抽象 - >具体类设计中的虚拟解构器

我试着通过在StackOverflow上查找几个问题来自己回答这个问题.虽然我认为我理解正确,但我无法解决这个问题.其中,给我留下了唯一明显的观察结果:我仍然没有得到它.

我已经在这篇文章的底部总结了一些问题,其间的一切都是我收集的信息和这个问题的背景.

所以,我知道当你有一个基类和一个派生类时,你的解构函数应该在基类中标记为虚拟.允许多态.

但是,我似乎无法让我的代码进行编译,或者当它编译时,它不会因为"未定义的引用"而链接.我一直在来回变换,但我似乎永远不会摆脱这个循环.

基本上我有一个interace,定义如下:

#ifndef GUIELEMENT_H_
#define GUIELEMENT_H_

class GuiElement {
    public:
    virtual ~GuiElement();
    virtual void draw() = 0;
};

#endif /* GUIELEMENT_H_ */
Run Code Online (Sandbox Code Playgroud)

我有几个从此延伸的对象.一个简单的关系是GuiWindow(直接来自GuiElement):

#ifndef CGUIWINDOW_H_
#define CGUIWINDOW_H_

#include <assert.h>
#include <cstddef>

#include "../GuiElement.h"
#include "../GuiInteractionDelegate.h"

class GuiWindow : public GuiElement {

    public:
        GuiWindow(GuiInteractionDelegate * guiInteractionDelegate) {
            assert(guiInteractionDelegate);
            interactionDelegate = guiInteractionDelegate;
        }

        ~GuiWindow() {
            //delete interactionDelegate;
        }

        // called each frame, delegates its behavior to the given concrete cGuiWindowDelegate class.
        void interact() {
            interactionDelegate->interact(this);
        }

    private:
        GuiInteractionDelegate * …
Run Code Online (Sandbox Code Playgroud)

c++ virtual inheritance

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