小编Ped*_*vao的帖子

不可修改集合中的ConcurrentModificationException

我在下面有这个代码,我通过执行以下行得到一个ConcurrentModificationException:

filterCardsToDevice(getCollection());
Run Code Online (Sandbox Code Playgroud)

代码:

private List<MyClass> filterCardsToDevice(Collection<MyClass> col) {
    final List<MyClass> newList = new ArrayList<MyClass>();

    for (MyClass myObj : col) {
        long id = myObj.getId();
        if (id < 0 || id > 0xFFFFFFFFl) {
            // just a log here
        } else {
            newList.add(myObj);
        }
    }

    return newList;
}

private final Map<Long, MyClass> map = new HashMap<Long, MyClass>();

public Collection<MyClass> getCollection() {
    synchronized (map) {
        return Collections.unmodifiableCollection(map.values());
    }
}
Run Code Online (Sandbox Code Playgroud)

堆栈是:

at java.util.HashMap$HashIterator.nextEntry(HashMap.java:841)                 
at java.util.HashMap$ValueIterator.next(HashMap.java:871)                 
at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010)
Run Code Online (Sandbox Code Playgroud)

正好在foreach线上:

for (MyClass myObj : col) …
Run Code Online (Sandbox Code Playgroud)

java collections unmodifiable concurrentmodification

9
推荐指数
2
解决办法
2600
查看次数

Spring @TestConfiguration 影响其他测试类

我有几个集成测试类,它们都从单个类导入配置,该类以特定方式@Configuration创建模拟 bean(出于说明目的,作为构造函数参数传递):externalApitrue

@Configuration
public class TestConfig {
  
  @Bean
  @Primary
  ExternalApi externalApi() {
    return new MockExternalApi(true); // <-- true by default for all test classes
  }
}
Run Code Online (Sandbox Code Playgroud)

但对于特定的集成测试类,我需要以不同的方式创建该 bean(假设false作为构造函数参数传递)。为了做到这一点,我尝试@TestConfiguration在静态内部类中使用,如下所示:

@RunWith(SpringRunner.class)
@SpringBootTest("spring.main.allow-bean-definition-overriding=true")
@Import(TestConfig.class)
@ActiveProfiles("test")
public class ExampleIT {

  @TestConfiguration
  public static class ExternalApiConfig {

    @Bean
    @Primary
    ExternalApi externalApi() {
      return new MockExternalApi(false); // <-- false for this particular test class
    }
  }

  @Test
  public void someTest() {...}
}
Run Code Online (Sandbox Code Playgroud)

然而,当一次执行我的所有集成测试类时(maven verify例如,使用 ),所有测试类在这一中断之后执行,这是有效的。由于它们共享相同的上下文,因此似乎在更改该 bean …

java spring spring-test spring-boot

9
推荐指数
2
解决办法
2129
查看次数

未定义高度的图像滑块

我正在尝试创建一个图像滑块(上一个/下一个),这样当我点击"上一个"时图像向左滑动,当我点击"下一个"时,图像向下滑动0.5s的慢速,所以它需要一些动画.当我到达最后一张图片然后点击"下一张"时,我希望图像"向后"运行到第一张图像,当我在第一张图像时点击"上一张",所以它"向前跑"直到最后一个.

我想要JSFiddle显示的相同行为.(但我不需要计时器自动移动图像,也不需要"触发"按钮,只需"上一步"和"下一步").

这里的问题是我的图像没有固定的大小.我以百分比定义宽度并且无法定义高度因为我有响应式设计,所以在调整浏览器窗口大小时图像会调整大小.

jQuery到上一个/下一个动作非常简单,但当我删除/添加"活动"类到我的图像时,我找不到添加此动画的方法(因此它们变得可见或不可见).

我已经尝试并排显示所有图像并仅显示第一个(设置容器宽度等于图像宽度),所以当我点击"下一步"时,我只是将容器"移动"到左边,所以它开始显示下一个图像,但它不起作用,因为一旦我无法定义图像的高度,它们将出现在彼此之下,而不是并排.

的jsfiddle

HTML

<div class="images">
    <img class="active" src="1.jpg">
    <img src="2.jpg">
    <img src="3.jpg">
</div>

<div class="previous">previous</div>

<div class="next">next</div>
Run Code Online (Sandbox Code Playgroud)

CSS

img {
    width: 100px;  
    display: none;
    float: left;
}

img.active {
    display: block;
}
Run Code Online (Sandbox Code Playgroud)

jQuery的

$('.next').on('click', function() {
    var active = $('img.active');
    var next = active.next('img');

    if (next.length) {
        active.removeClass('active');
        next.addClass('active');
    } else {
        active.removeClass('active');
        $('.images img:first').addClass('active');
    }
});
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery slide

7
推荐指数
3
解决办法
978
查看次数

我自己弃用的注释

可以创建一个像@deprecated这样的注释,我的意思是,使用已弃用的代码风格?

我想创建一个注释来指示某些消息已从通信协议中删除,因此我不想使用已弃用的注释,因为我想要1)为我的注释提供更好,更具暗示性的名称,例如"message"删除"2"为我的注释提供参数,例如(协议= 5) - 从协议5开始删除.

但是,我想保留这个删除代码的其他人知道这个消息只是通过查看代码被删除.

java annotations

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

调整浏览器窗口大小时,页脚宽度不是100%

我有两个div.一个是我的页面的主体,另一个是我的页面的页脚.即使我调整浏览器窗口大小,页脚div也应该有100%的宽度.

我的网页是这样的:

在此输入图像描述

当我调整浏览器窗口的大小时,会出现滚动:

在此输入图像描述

如果我水平滚动页面,我的页脚不再是宽度的100%:

在此输入图像描述

我该怎么办才能保持我的页脚div总是宽度的100%?

<body>
    <div id="header"></div>
    <div id="footer"></div>
</body>

#header {
    height: 500px;
    width: 1100px;
    margin: 0 auto;
    background: grey;
}

#footer {
    background: #6B191C;
    position: absolute;
    left: 0;
    height: 100px;
    width: 100%;
    margin-top: 60px;
}
Run Code Online (Sandbox Code Playgroud)

html css

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

循环播放 HTML5 视频卡顿

我的网站上有一个简单的 HTML5 视频。我想让它循环,所以我loop给它添加了标签。它有效,问题是它每次重新启动时都会断断续续。视频很短,只有 8 秒,但是当它到达结尾,然后重新开始时,视频的第一帧“冻结”了大约半秒。我在 Chrome 和 Firefox 上测试过,它只发生在 Chrome 上。

在谷歌之后,我找到了几种解决方法,但没有一个对我有用。我试图ended在 JS 中捕捉视频的事件,所以我play再次观看视频,在视频开始播放时清除视频的海报图像$video.attr('poster', ''),依此类推。

如果我在 Windows Media Player 或任何其他启用“重复”模式的视频播放器上播放视频,它会循环播放而不会出现任何卡顿现象,因此我认为这与视频编码无关。

<video loop>
    <source src="myvid.mp4" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)

html javascript video html5-video

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

在不同设备中使用相同的浏览器会产生不同的"margin-left"结果

我试图在"blablablau"这个词的字母"u"上面放一个图像(一顶帽子).

我期望的结果是:

在此输入图像描述

我用这段代码解决了这个问题:

<img id="img-hat" src="hat.png">
<p id="title-bla">blablablau</p>
Run Code Online (Sandbox Code Playgroud)
#img-hat {
    transform: rotate(25deg);
    position: absolute; 
    margin-left: 118px; 
    height: 23px; 
    width: 37px
}

#title-bla {
    margin-bottom: -5px; 
    font-weight: bold; 
    font-size: 170%; 
    margin-top: 2px; 
    font-family: 'Open Sans',sans-serif
}
Run Code Online (Sandbox Code Playgroud)

问题是,在不同设备中使用SAME浏览器(如chrome),我得到的margin-left结果不同img-hat.

示例:在我的计算机中显示正确.在我的笔记本电脑中它也正确显示.但是,在另一台笔记本电脑(具有相同的屏幕分辨率)中,它会向右侧显示更多的帽子,如下所示:

在此输入图像描述

这种行为在我的手机和我测试的另一台电脑中继续存在.

为什么会这样,我该如何解决?

html css margin

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

将div中的图像与其他div对齐

我有两个div的A和B. div A的宽度是auto,div B的宽度设置为一个小于浏览器窗口宽度的特定值.div B也位于浏览器窗口的中间.

在div AI内有一个图像.我想要的是,即使我调整浏览器窗口的大小,图像也始终与div B对齐.

在此输入图像描述

#header {
  background-color: #761D1F;
  height: 150px;
  width: auto;
  margin: -8px;
  margin-top: 20px;
}
#div-body {
  width: 1100px;
  height: 1000px;
  margin: 0 auto;
  margin-top: 50px;
}
#img {
  margin-top: 25px;
  height: 100px;
  width: 100px;
  margin-left: 48px;
}
Run Code Online (Sandbox Code Playgroud)
<div id="header">
  <img id="img" src="http://lorempixel.com/100/100/">
</div>

<div id="div-body">
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

html css

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

带有页边距的 CSS 粘性页脚

我在 Stack Overflow 上找到了很多粘性页脚的解决方案,它对我有用。但是,我需要在“内容 div”和“页脚 div”之间保持 60px 的距离。在到目前为止我找到的所有解决方案中,如果我margin-top: 60px为我的“页脚 div”设置它不起作用。

我找到的一个解决方案:

<div id="container">
    <div id="body">
        <div id="teste">
        </div>
    </div>
    <div id="footer">
    </div>
</div>

html,
body {
  margin:0;
  padding:0;
  height:100%;
}

#container {
  min-height:100%;
  position:relative;
}

#teste {
  background: red;
  height: 500px;
}

#body {
  padding:10px;
  padding-bottom:60px;   /* Height of the footer */   
}

#footer {
  position:absolute;
  bottom:0;
  width:100%;
  height:60px;   /* Height of the footer */
  background:#6cf;
  margin-top: 60px; <---- this didn't work
}
Run Code Online (Sandbox Code Playgroud)

html css margin sticky-footer

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

使用自定义格式在 SQL Server 上将 varchar 转换为日期时间

我有一个 varchar 列,它表示以下格式的日期:“DDMMYYHHMMSS”。我正在以这种方式将此 varchar 转换为 datetime:

select * from myTable where getdate() >= convert(datetime, concat(case when substring(myDate, 5, 2) >= '0' and substring(myDate, 5, 2) <= '50' then 20 else 19 end, substring(myDate, 5, 2), '-', substring(myDate, 3, 2), '-', substring(myDate, 1, 2), ' ', substring(myDate, 7, 2), ':', substring(myDate, 9, 2), ':', substring(myDate, 11, 2)), 120)
Run Code Online (Sandbox Code Playgroud)

解释:首先,我打破 varchar 以分别获取所有字段(日、月、年等)。然后我将这些字段连接起来,以 SQL Server 的已知格式构建一个 varchar:“YYYY-MM-DD HH:MI:SS”。最后,我使用 convert 函数将 varchar 转换为格式为 120 的日期时间。SQL 开头有一个条件,我检查 2 位数年份以了解如何将其转换为 4 位数年份。

我想知道是否有更好的方法来编写此SQL。(它必须与 SQL Server 2005 …

sql-server datetime

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

列表之间没有空格的HTML表

我有一个有两列的简单表

<table>
  <tr>
    <td>aaaaaaa</td>
    <td>bbbbbbb</td>                                        
  </tr>
  <tr>
    <td>aaaaaaa</td>
    <td>bbbbbbb</td>                                        
  </tr>
</table>

tr:hover {
    background: grey;
}
Run Code Online (Sandbox Code Playgroud)

当我将鼠标指针放在行上方时,行的背景变为灰色,但行之间的空间很小

在此输入图像描述

如何移除这个小空间以使整行保持灰色?

html css html-table

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