官方的javadoc 说 Math.floor返回一个"等于数学整数"的双精度,但那为什么它不能返回一个int?
我需要确定一个用户提供的字符串是一个有效的文件路径(即如果createNewFile()将会成功还是抛出一个异常),但我不想臃肿只为验证目的创建的无用文件的文件系统,所以是有没有办法确定我拥有的字符串是否是一个有效的文件路径而不试图创建该文件?
我知道"有效文件路径"的定义因操作系统而异,但我想知道是否有任何快速接受"C:/ foo"或"/ foo"并拒绝"香蕉"的方法...一种可能的方法如果创建成功,可能正在尝试创建文件并最终删除它,但我希望有更优雅的方法来实现相同的结果......
我知道Function类可以作为参数传递给另一个函数,如下所示:
void doSomething(Function f) {
f(123);
}
Run Code Online (Sandbox Code Playgroud)
但有没有办法约束参数和函数参数的返回类型?
例如,在这种情况下f直接在整数上调用,但如果它是一个接受不同类型的函数呢?
我尝试将其作为a传递Function<Integer>,但Function不是参数类型.
有没有其他方法来指定作为参数传递的函数的签名?
我正在尝试将a转换Map<String, List<String>>为a Map<String, String>,其中每个键的值是通过连接List上一个映射中的所有值而构建的联合字符串,例如:
A -> ["foo", "bar", "baz"]
B -> ["one", "two", "three"]
Run Code Online (Sandbox Code Playgroud)
应转换为
A -> "foo|bar|baz"
B -> "one|two|three"
Run Code Online (Sandbox Code Playgroud)
使用Java 8 Streams API执行此操作的惯用方法是什么?
我有一个textarea包含要发布的消息和一个仍然可用的字符数的跨度.
<textarea name="" cols="" rows="" maxLength="{{maxMessageLength}}" ng-model="messageText"/>
<div id="chatmessage-buttons">
<a ng-click="sendMessage()"><span>Invia</span></a>
<span ng-class="{message-length-alert: (messageText.length > messageLengthAlertTreshold), message-length: true}">{{maxMessageLength - messageText.length}}</span>
</div>
Run Code Online (Sandbox Code Playgroud)
messageText,maxMessageLength并且messageLengthAlertTreshold都在$scope,并且当我在textarea中插入文本时更改值的范围内,并且跨度内的计数器正确更新messageText.length.
然而,无论是CSS类message-length也message-length-alert都曾经申请过我的跨度,无论包含在价值的messageText.
我也尝试删除检查以message-length-alert保留ng-class属性{message-length: true},但是它仍然没有被应用.
我错过了什么?
我ActionMessages在执行一个没有显示的动作时遇到了一些问题,我发现我的问题是由于我的前锋redirect=true在struts-config.xml中.
由于默认行为是redirect=false,我一直在考虑可以使用哪些好处redirect=true,我找不到任何答案.有谁知道何时以及为什么redirect=true应该在行动中使用?
我目前正在开发一个Web应用程序,需要接受用户以任何格式(.avi,.mov等)上传的视频,并将它们转换为flv,以便在基于flash的播放器中播放.
由于该站点是基于OpenCms的,因此最好的解决方案是OpenCms的现成插件,允许上传和播放在后台进行转码操作的视频,但只需要一组Java类来进行转码就可以了.我可以自己制作上传表格和播放部分.
我已(书面相当差)一个JavaScript组件在我的应用程序来处理无限滚动分页,我试图重写它使用的IntersectionObserver,如所描述这里,但是我遇到在测试它的问题.
有没有办法在QUnit测试中驱动观察者的行为,即用我的测试中描述的一些条目触发观察者回调?
我提出的一个可能的解决方案是在组件的原型中公开回调函数,并在我的测试中直接调用它,如下所示:
InfiniteScroll.prototype.observerCallback = function(entries) {
//handle the infinite scroll
}
InfiniteScroll.prototype.initObserver = function() {
var io = new IntersectionObserver(this.observerCallback);
io.observe(someElements);
}
//In my test
var component = new InfiniteScroll();
component.observerCallback(someEntries);
//Do some assertions about the state after the callback has been executed
Run Code Online (Sandbox Code Playgroud)
我真的不喜欢这种方法,因为它暴露了组件IntersectionObserver内部使用的事实,这是我认为客户端代码不应该看到的实现细节,所以有没有更好的方法来测试它?
奖金喜欢不使用jQuery的解决方案:)
我正在尝试向模拟框架添加一个功能,以使测试类在存在已被存根但从未实际调用的方法时失败,即测试包含太多存根或测试的代码未遵循预期路径。
我已经可以进行检查,并且我计划在@AfterAllJUnit 扩展实现的方法中进行检查,如下所示:
@ExtendWith(MyExtension::class)
class TestClass {
@Test
fun myTest() {
// stub a function
// run some test code
}
}
Run Code Online (Sandbox Code Playgroud)
class MyExtension : AfterAllCallback {
override fun afterAll(context: ExtensionContext) {
if (not all stubbed methods have been called) {
throw AssertionError("Something")
}
}
}
Run Code Online (Sandbox Code Playgroud)
然而,AssertionError被扔进体内afterAll并不会导致测试失败。
这对我来说有点有意义,因为afterAll预计在所有测试之后执行,当测试结果已经计算出来时,但我想知道是否有一种方法可以在执行所有测试后触发测试类失败。
根据Javadoc,HttpServletRequest.getCookies()"返回一个包含客户端使用此请求发送的所有Cookie对象的数组.",null如果没有发送cookie ,则返回.
除了返回一个空数组之外,这个行为是否有一个特定的原因,这对我来说似乎更直观,并且避免在迭代数组之前需要检查null以查找特定的cookie?
java ×6
unit-testing ×2
angularjs ×1
dart ×1
filesystems ×1
flv ×1
java-8 ×1
java-stream ×1
javascript ×1
junit5 ×1
kotlin ×1
math ×1
ng-class ×1
opencms ×1
qunit ×1
servlets ×1
struts ×1
transcode ×1
types ×1
validation ×1
video ×1