小编Tim*_*the的帖子

为什么没有OptionalInt.ofNullable(Integer);

有没有一个很好的理由没有:

OptionalInt.ofNullable(Integer);
Run Code Online (Sandbox Code Playgroud)

如果你想将一个可选/可空的Integer转换为OptionalInt,它似乎是一个完美的契合.我目前正在使用我写的这个util方法:

 public static OptionalInt optionalIntOfNullable(Integer integer){
     return integer == null ? OptionalInt.empty() : OptionalInt.of(integer);
 }
Run Code Online (Sandbox Code Playgroud)

那不是那么糟糕,但是,我想知道我是否错过了什么.

java optional java-8

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

是否有UIKit组件的视觉指南?

我的问题是这个,我想在我的应用程序中添加一些组件,我在其他应用程序中看到了.每当我想要这样做时,我就开始在Google上搜索这个名字.我花了一些时间才找到UIActionSheet的名字.现在我正在寻找当您上下调节音量时出现的透明叠加.

那么,UIKit组件有一个很好的视觉指南吗?例如,请参阅摆动组件视觉指南或此视觉指南,这是短/不完整的方式.其次,我正在寻找的组件的名称是什么?

iphone uikit

10
推荐指数
2
解决办法
6129
查看次数

使用CGLIB/Spring AOP时如何防止误报空指针警告?

我正在使用Spring AOP,因此在我的Spring MVC控制器中间接使用CGLIB.由于CGLIB需要一个默认构造函数,我包含一个,我的控制器现在看起来像这样:

@Controller
public class ExampleController {

    private final ExampleService exampleService;

    public ExampleController(){
        this.exampleService = null;
    }

    @Autowired
    public ExampleController(ExampleService exampleService){
        this.exampleService = exampleService;
    }

    @Transactional
    @ResponseBody
    @RequestMapping(value = "/example/foo")
    public ExampleResponse profilePicture(){
        return this.exampleService.foo(); // IntelliJ reports potential NPE here
    }
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,IntelliJ IDEA的静态代码分析报告了一个潜在的NullPointerException,因为它this.exampleService可能为null.

我的问题是:

如何防止这些误报空指针警告?一种解决方案是添加assert this.exampleService != null或使用番石榴Preconditions.checkNotNull(this.exampleService).

但是,必须将此方法添加到此方法中使用的每个字段的每个方法中.我更喜欢我可以在一个地方添加的解决方案.也许是默认构造函数或其他东西的注释?

编辑:

似乎是用Spring 4修复的,但我现在正在使用Spring 3:http: //blog.codeleak.pl/2014/07/spring-4-cglib-based-proxy-classes-with-no-default-ctor html的

java static-analysis intellij-idea spring-aop cglib

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

为什么".*"和".+"给出不同的结果?

为什么".*"和".+"给出不同的结果?

System.out.println("foo".replaceAll(".+", "bar")); // --> "bar"
System.out.println("foo".replaceAll(".*", "bar")); //--> "barbar"
Run Code Online (Sandbox Code Playgroud)

我希望两者都是"bar",因为*和+都是贪婪的,应该匹配整个String.(以上示例是Java,但其他工具,如http://www.gskinner.com/RegExr/给我相同的结果)

regex

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

如何在一个会话中发送多个电子邮件?

我想向不同的收件人发送数千封不同的电子邮件,并希望打开与我的SMTP的连接并保留它.我希望这更快,然后重新打开ervy邮件的连接.我想使用Apache Commons Email,但如果有必要,可以回退到Java Mail API.

现在我正在这样做,每次打开关闭连接:

HtmlEmail email = new HtmlEmail();
email.setHostName(server.getHostName());
email.setSmtpPort(server.getPort());
email.setAuthenticator(new DefaultAuthenticator(server.getUsername(), server.getPassword()));
email.setTLS(true);
email.setFrom("test@example.com");
email.addTo(to);
email.setSubject(subject);
email.setHtmlMsg(htmlMsg);
email.send();
Run Code Online (Sandbox Code Playgroud)

java email apache-commons-email

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

如何设置InternetExplorerDriver下载目录?

我们使用Selenium从我们的Web应用程序测试文件下载.目前我们正在使用Firefox,将其设置为所需的下载目录,并确保没有弹出对话框,下载文件时不需要用户交互.

对于FirefoxDriver,我们这样做:

File downloadDir = ...;
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", downloadDir.getAbsolutePath());
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "...");
WebDriver driver = new FirefoxDriver(profile);
Run Code Online (Sandbox Code Playgroud)

为InternetExplorerDriver做些什么来达到同样的效果?我找不到InternetExplorerProfile,也找不到DesiredCapabilities中的开关.

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("???", "???");
WebDriver driver = new InternetExplorerDriver(capabilities);
Run Code Online (Sandbox Code Playgroud)

selenium internet-explorer selenium-webdriver

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

导出为PDF时如何在文本字段中包含图像和表格?

使用JasperReports导出PDF时,有没有办法在textfields中使用markup = html包含图像和表格?

当我将带有markup = html的文本字段添加到我的报告中时,提供了开箱即用的基本HTML支持,例如:

<textField>
    <reportElement .../>
    <textElement markup="html"/>
    <textFieldExpression><![CDATA["<html>some <b>bold</b> text</html>"]]></textFieldExpression>
</textField>
Run Code Online (Sandbox Code Playgroud)

但是,似乎不支持更复杂的HTML.如果我做对了,就必须编写一个自定义MarkupProcessor来将传入的HTML转换为jrxml并将其插入JasperReports引擎来处理更复杂的示例.

由于我们使用CKEditor来处理输入,因此使用的标记列表应该是可管理的.其次,我们已经使用Jsoup来解析和清理HTML,这可能对实现MarkupProcessor很有用.

有没有我可以建立的例子?正如我说过的,我主要是寻找图像(img)和表(table,tr,td)的支持.

如果没有,是否有替代方法可以使用JasperReports实现这一目标?

html pdf-generation jasper-reports

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

如何在Android上添加声音效果?

我想写一个应用程序,从麦克风中拾取声音,添加效果并实时播放.

如果发现AudioRecord从麦克风和AudioTrack中拾取声音来播放它.在这之间,我需要一些库来操纵声音,添加效果或使用一些均衡器.这可能是通过Java Sound API实现的,但是在我从这个SO问题中指出的这个问题报告中读到的时候似乎也没有.

我的问题是:如何在Android上执行此操作?你能推荐任何图书馆吗?

java audio android

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

如果模型失效,如何使用最后一个有效的modelValue?

我正在开发一个应用程序,可以在用户更改内容时自动保存更改,例如输入字段的值.我已经编写了一个autosave指令,该指令被添加到应该自动触发保存事件的所有表单字段中.

模板:

   <input ng-model="fooCtrl.name" autosave>
   <input ng-model="fooCtrl.email" autosave>
Run Code Online (Sandbox Code Playgroud)

指示:

  .directive('autosave', ['$parse', function  ($parse) {

    return {
      restrict: 'A',
      require: 'ngModel',
      link: function (scope, element, attrs, ngModel) {

        function saveIfModelChanged () {
          // save object containing name and email to server ...
        }

        ngModel.$viewChangeListeners.push(function () {
          saveIfModelChanged();
        });
      }
    };
  }]);
Run Code Online (Sandbox Code Playgroud)

到目前为止,这一切对我来说都很好.但是,当我在混合中添加验证时,例如验证输入字段是有效的电子邮件地址,undefined一旦viewValue更改为无效的电子邮件地址,modelValue就会设置为.

我想要做的是:记住最后一个有效的modelValue并在autosaving时使用它.如果用户更改的电子邮件地址是无效的,对象含有nameemail仍应保存到服务器.使用当前有效name和最后有效email.

我开始时保存最后一个有效的modelValue,如下所示:

添加验证的模板:

   <input type="email" ng-model="fooCtrl.name" autosave required>
   <input ng-model="fooCtrl.email" autosave required>
Run Code Online (Sandbox Code Playgroud)

保存lastModelValue的指令:

  .directive('autosave', ['$parse', function  ($parse) …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-validation

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

我如何对javanica @HystrixCommand注释方法进行单元测试?

我正在使用javanica并注释我的hystrix命令方法,如下所示:

@HystrixCommand(groupKey="MY_GROUP", commandKey="MY_COMMAND" fallbackMethod="fallbackMethod")
public Object getSomething(Object request) {
....
Run Code Online (Sandbox Code Playgroud)

我试图对我的回退方法进行单元测试,而不必直接调用它们,即我想调用带@HystrixCommand注释的方法,并在抛出500错误后让它自然地流入回退.这一切都在单元测试之外工作.

在我的单元测试中,我使用弹簧MockRestServiceServer返回500个错误,这部分正在工作,但Hystrix没有在我的单元测试中正确初始化.在我的测试方法开始时,我有:

HystrixRequestContext context = HystrixRequestContext.initializeContext();
myService.myHystrixCommandAnnotatedMethod();
Run Code Online (Sandbox Code Playgroud)

在此之后,我试图通过键获取任何hystrix命令并检查是否有任何已执行的命令,但列表始终为空,我使用此方法:

public static HystrixInvokableInfo<?> getHystrixCommandByKey(String key) {
    HystrixInvokableInfo<?> hystrixCommand = null;
    System.out.println("Current request is " + HystrixRequestLog.getCurrentRequest());
    Collection<HystrixInvokableInfo<?>> executedCommands = HystrixRequestLog.getCurrentRequest()
            .getAllExecutedCommands();
    for (HystrixInvokableInfo<?> command : executedCommands) {
        System.out.println("executed command is " + command.getCommandGroup().name());
        if (command.getCommandKey().name().equals(key)) {
            hystrixCommand = command;
            break;
        }
    }
    return hystrixCommand;
}
Run Code Online (Sandbox Code Playgroud)

我意识到我在单元测试初始化​​中遗漏了一些东西,任何人都可以指出我正确的方向如何正确地进行单元测试吗?

java unit-testing annotations hystrix mockrestserviceserver

7
推荐指数
2
解决办法
5508
查看次数