小编Dav*_*les的帖子

从Go中的一组相关常量创建枚举

什么是在Go语言中对大量相关常量进行分组的首选(或右)方法?例如,C#和C++都有enum这个.

enums go

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

JavaBu+中的DocumentBuilderFactory是否是线程安全的?

用于状态的Java 1.4 docjavax.xml.parsers.DocumentBuilderFactory毫不含糊:

DocumentBuilderFactory类的实现不保证是线程安全的.用户应用程序要确保从多个线程中使用DocumentBuilderFactory.或者,应用程序可以为每个线程提供一个DocumentBuilderFactory实例.应用程序可以使用工厂的同一实例来获取DocumentBuilder的一个或多个实例,前提是工厂实例一次不在多个线程中使用.

Java 5的Java 6的文档,但是,说什么的那种.DocumentBuilderFactory现在是线程安全的,还是Sun刚刚决定警告是否过度,人们应该知道更好?

java multithreading jaxp

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

通过pipenv自定义模块搜索路径(PYTHONPATH)

我有一个Python项目,包括一个Jupyter笔记本,一个bin目录中的几个脚本和一个目录中的模块src,依赖于Pipfile:

myproject
??? myproject.ipynb
??? Pipfile
??? Pipfile.lock
??? bin
?   ??? bar.py
?   ??? foo.py
??? src
    ??? baz.py
    ??? qux.py
Run Code Online (Sandbox Code Playgroud)

脚本foo.pybar.py使用标准shebang

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

并可以运行pipenv shell:

mymachine:myproject myname$ pipenv shell
(myproject-U308romt) bash-3.2$ bin/foo.py
foo
Run Code Online (Sandbox Code Playgroud)

但是,我无法src从脚本中轻松访问模块.如果我加

import src.baz as baz
Run Code Online (Sandbox Code Playgroud)

foo.py时,我得到:

ModuleNotFoundError: No module named 'src'
Run Code Online (Sandbox Code Playgroud)

我试过的一个解决方案是在下面添加一个.env文件myproject:

PYTHONPATH=${PYTHONPATH}:${PWD}
Run Code Online (Sandbox Code Playgroud)

此作品感谢pipenv自动加载.env,但是检查的.env文件到项目的混帐分布将与传统使用的碰撞.env存储机密(如密码) -事实上,我的默认.gitignore …

python pythonpath python-3.x pipenv

18
推荐指数
2
解决办法
6252
查看次数

如何在iOS 4.2中将视频导入iPhone模拟器相机胶卷?

我已经尝试过这里这里描述的解决方案,即将QuickTime电影复制到~/Library/Application Support/iPhone Simulator/User/Media/DCIM/100APPLE/VID_0001.m4v,但这似乎没有做任何事情,而且我猜测自iOS 3.2以来发生了一些变化,使其无效.

请注意,我非常喜欢不涉及向我的应用程序添加代码的解决方案,除非这确实是唯一的方法.

ETA:我知道可以将视频文件作为资源包含在内; 我想要的是将视频文件添加到相机胶卷 - 可以通过(例如)保存Safari中的图像来完成照片 - 这样我就可以测试涉及挑选媒体文件的功能.

再次更新:如果有人可以明确地告诉我,通过参考,这也是不可能的,这也会有所帮助.

iphone ios-4.2 ios-simulator

17
推荐指数
4
解决办法
1万
查看次数

Ruby中'include'和'prepend'有什么区别?

来自模块

模块#append_features(mod)→mod =>当这个模块包含在另一个模块中时,Ruby在这个模块中调用append_features,并在mod中传递接收模块.Ruby的默认实现是将此模块的常量,方法和模块变量添加到mod,如果此模块尚未添加到mod或其祖先之一.

模块#prepend_features(mod)→mod =>当这个模块被放在另一个模块中时,Ruby在这个模块中调用prepend_features,并在mod中传递接收模块.Ruby的默认实现是将此模块的常量,方法和模块变量覆盖到mod,如果此模块尚未添加到mod或其祖先之一.

任何人都可以帮助我理解以下问题:

  • 更重要的是功能Module被定义为appendprepend除默认?

  • 他们的功能如何不同?

  • 何时使用append_features和何时prepend_features

  • 上面两条粗线之间有什么区别?

ruby mixins prepend ruby-2.0

17
推荐指数
2
解决办法
6094
查看次数

传递给CompletableFuture.exceptionally()的异常处理程序是否必须返回有意义的值?

我习惯了ListenableFuture模式,有onSuccess()onFailure()回调,例如

ListeningExecutorService service = MoreExecutors.listeningDecorator(Executors.newCachedThreadPool());
ListenableFuture<String> future = service.submit(...)
Futures.addCallback(future, new FutureCallback<String>() {
  public void onSuccess(String result) {
    handleResult(result);
  }
  public void onFailure(Throwable t) {
    log.error("Unexpected error", t);
  }
})
Run Code Online (Sandbox Code Playgroud)

看起来Java 8的CompletableFuture目的是处理或多或少相同的用例.天真的,我可以开始将上面的例子翻译为:

CompletableFuture<String> future = CompletableFuture<String>.supplyAsync(...)
  .thenAccept(this::handleResult)
  .exceptionally((t) -> log.error("Unexpected error", t));
Run Code Online (Sandbox Code Playgroud)

这肯定不如ListenableFuture版本那么冗长,看起来非常有前景.

但是,它没有编译,因为exceptionally()不需要a Consumer<Throwable>,它需要一个Function<Throwable, ? extends T>- 在这种情况下,a Function<Throwable, ? extends String>.

这意味着我不能只记录错误,我必须String在错误情况下提出一个返回值,并且在错误情况下没有有意义的String值返回.我可以返回null,只是为了获得编译代码:

  .exceptionally((t) -> {
    log.error("Unexpected …
Run Code Online (Sandbox Code Playgroud)

java completable-future

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

iPhone应用程序进入网络请求永远不会完成的状态

每隔一段时间,我的iPhone应用程序就会进入网络请求总是超时的状态,即使其他应用程序正常工作(甚至可以访问相同的网站).这显然与网络可用性的变化无关,并且在3G和WiFi上都会发生.有关如何诊断问题的任何建议?

(FWIW,该应用程序使用MonoTouch和HttpWebRequest,但我怀疑出现问题的是低级别.)

注意:通过后台应用程序和更改网络配置,问题仍然存在; 唯一的解决方法似乎是杀死应用程序并重新启动它.

更新:我尝试过使用Reachability,但没有效果.Reachability.InternetConnectionStatus总是返回ReachableViaWiFiNetwork(或者ReachableViaCarrierDataNetwork,取决于;同样IsHostReachable()总是返回true.Runtime.StartWWAN()似乎没有任何区别.

iphone networking xamarin.ios

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

为什么没有更换EventListenerList?(或者说:更换它有什么陷阱?)

我们的传统的应用程序被套牢,涉及的荒谬数量可怕的框架(好吧,我会指名道姓,它的挂毯4)EventListeners为最简单的操作(〜100,000).我猜这超出了javax.swing.event.EventListenerList有意处理的范围,在这个不幸的用例中,它引起了我们一些讨厌的性能问题.

我花了几个小时鞭打HashMap/ArrayList下面相当天真的替换品,它几乎在所有方面都快得多:

添加50,000个侦听器:

  • EventListenerList > 2秒
  • EventListenerMap ~3.5毫秒

向50,000名听众发起火灾事件:

  • EventListenerList 0.3-0.5毫秒
  • EventListenerMap 0.4-0.5毫秒

删除50,000个侦听器(一次一个):

  • EventListenerList > 2秒
  • EventListenerMap ~280毫秒

射击可能只是头发慢,但修改速度要快得多.不可否认,这个框架给我们带来的情况是病态的,但它似乎仍然EventListenerList可以在很久以前被取代.显然,公共API存在问题(例如,它暴露了其原始内部状态数组),但必须有更多内容.也许有多线程案例EventListenerList更安全或更高效?

public class EventListenerMap
{

    private final ReadWriteLock lock = new ReentrantReadWriteLock();
    private final Lock readLock = lock.readLock();
    private final Lock writeLock = lock.writeLock();

    private Map<Class, List> llMap = new HashMap<Class, List>();

    public <L extends EventListener> void add ( Class<L> listenerClass, L listener )
    {
        try
        {
            writeLock.lock();
            List<L> list = …
Run Code Online (Sandbox Code Playgroud)

java swing event-handling

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

在Python类中动态定义实例字段

我是Python新手,主要来自Java编程.

我目前正在思考如何实例化Python中的类.

我理解__init__():就像Java中的构造函数.但是,有时python类没有一个__init__()方法,在这种情况下我假设有一个默认构造函数就像在Java中一样?

另一个使从Java转换到python有点困难的事情是,在Java中,您必须使用类型定义类的所有实例字段,有时还需要初始值.在python中,所有这些似乎都消失了,开发人员可以动态定义新的字段.

例如,我遇到过这样的程序:

class A(Command.UICommand):
    FIELDS = [
        Field( 'runTimeStepSummary', BOOL_TYPE)
        ]

    def __init__(self, runTimeStepSummary=False):
        self.runTimeStepSummary = runTimeStepSummary

    """Other methods"""

    def execute(self, cont, result):
        self.timeStepSummaries = {}
        """ other code"""
Run Code Online (Sandbox Code Playgroud)

令人困惑的事情(并且稍微让我感到恼火)是这个A类没有名为timeStepSummaries的字段但是方法中间的开发人员如何定义新字段呢?或者我的理解不正确?

所以要清楚,我的问题是在Python中我们可以在运行时动态地为类定义新字段,就像在这个例子中一样,或者这个时间是否是一个类似私有变量的变量的一个实例?

编辑:我正在使用python 2.7

python

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

如何使用Gradle运行ScalaTest和JUnit测试?

我有一个混合的Java/Scala项目,包括JUnit和ScalaTest测试.使用scalatest插件,Gradle运行ScalaTest测试src/test/scala,但忽略了JUnit测试src/test/java.没有插件,Gradle运行JUnit测试但忽略Scala.我错过了什么伎俩?

我的build.gradle:

plugins {
  id 'java'
  id 'maven'
  id 'scala'
  id "com.github.maiflai.scalatest" version "0.6-5-g9065d91"
}

sourceCompatibility = 1.8

group = 'org.chrononaut'
version = '1.0-SNAPSHOT'

task wrapper(type: Wrapper) {
    gradleVersion = '2.3'
}

ext {
    scalaMajorVersion = '2.11'
    scalaVersion = "${scalaMajorVersion}.5"
}

repositories {
    mavenCentral()
    mavenLocal()
}

dependencies {
    compile "org.scala-lang:scala-library:${scalaVersion}"
    compile "org.scala-lang.modules:scala-xml_${scalaMajorVersion}:1.0.3"
    compile 'com.google.guava:guava:18.0'
    compile 'javax.xml.bind:jaxb-api:2.2.12'
    compile 'jaxen:jaxen:1.1.6'
    compile 'joda-time:joda-time:2.7'
    compile 'org.joda:joda-convert:1.7'
    compile 'org.apache.commons:commons-lang3:3.3.2'
    compile 'org.jdom:jdom2:2.0.5'

    testCompile 'junit:junit:4.12'
    testCompile 'org.easytesting:fest-assert:1.4'
    testCompile 'org.mockito:mockito-core:1.10.19' …
Run Code Online (Sandbox Code Playgroud)

junit gradle scalatest

15
推荐指数
2
解决办法
5360
查看次数