小编Dav*_*fer的帖子

我应该使用哪个@NotNull Java注释?

我希望使我的代码更具可读性,并使用IDE代码检查和/或静态代码分析(FindBugs和Sonar)等工具来避免NullPointerExceptions.许多工具似乎与彼此的@NotNull/ @NonNull/ @Nonnull注释不兼容,并列出我的代码中的所有这些工具都很难阅读.有什么建议是"最好的"吗?这是我发现的等效注释列表:

  • javax.validation.constraints.NotNull
    创建用于运行时验证,而不是静态分析.
    文件

  • edu.umd.cs.findbugs.annotations.NonNull
    Findbugs静态分析使用,因此Sonar(现为Sonarqube)
    文档

  • javax.annotation.Nonnull
    这可能也适用于Findbugs,但JSR-305处于非活动状态.(另请参阅:JSR 305的状态是什么?) 来源

  • org.jetbrains.annotations.NotNull
    由IntelliJ IDEA IDE用于静态分析.
    文件

  • lombok.NonNull
    用于控制Project Lombok中的代码生成.
    占位符注释,因为没有标准.
    来源, 文档

  • android.support.annotation.NonNull
    Android中提供的标记注释,由support-annotations包
    文档提供

  • org.eclipse.jdt.annotation.NonNull
    Eclipse用于静态代码分析
    文档

java ide null annotations nullpointerexception

918
推荐指数
20
解决办法
27万
查看次数

如何在REPL中重新加载clojure文件

重新加载Clojure文件中定义的函数的首选方法是什么,而不必重新启动REPL.现在,为了使用更新的文件,我必须:

  • 编辑 src/foo/bar.clj
  • 关闭REPL
  • 打开REPL
  • (load-file "src/foo/bar.clj")
  • (use 'foo.bar)

此外,(use 'foo.bar :reload-all)不会产生所需的效果,即评估修改后的函数体并返回新值,而不是表现为源根本没有改变.

clojure reload leiningen read-eval-print-loop

159
推荐指数
6
解决办法
6万
查看次数

关系数据库与图数据库的比较

有人可以向我解释一个关系数据库(例如MySQL)与Neo4j等图形数据库相比的优缺点吗?

在SQL中,您有多个表,其中各种ID链接它们.然后你必须加入连接表.从新手的角度来看,为什么要将数据库设计为需要连接,而不是将连接从一开始显示为边缘,就像使用图形数据库一样.从概念上讲,对新手来说没有任何意义.据推测,这有一个非常技术但非概念性的原因?

sql relational-database graph-databases

80
推荐指数
5
解决办法
4万
查看次数

如何迭代地图键和值?

我有以下想要迭代的地图:

(def db {:classname "com.mysql.jdbc.Driver" 
         :subprotocol "mysql" 
         :subname "//100.100.100.100:3306/clo" 
         :username "usr" :password "pwd"})
Run Code Online (Sandbox Code Playgroud)

我尝试过以下操作,但不是打印键和值一次,而是重复打印键和值作为各种组合:

(doseq [k (keys db) 
        v (vals db)] 
  (println (str k " " v)))
Run Code Online (Sandbox Code Playgroud)

我想出了一个解决方案,但Brian(见下文)更符合逻辑.

(let [k (keys db) v (vals db)] 
  (do (println (apply str (interpose " " (interleave k v))))))
Run Code Online (Sandbox Code Playgroud)

clojure

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

Dart中不同Map实现之间有什么区别?

Dart有一个Map类型,有HashMap,LinkedHashMapSplayTreeMap等实现.这些不同的Map实现之间有什么区别?

dart

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

CLO for Clojure?

是否存在Clojure的CLOS(Common Lisp Object System)之类的东西?

lisp oop clojure common-lisp clos

24
推荐指数
3
解决办法
4396
查看次数

应用程序(不是库)的Dart项目结构

我试图了解Dart 推荐的项目结构,而不是看到"穿过树林的森林".

所以,如果我的项目是旨在成为一个可重用的库,比如,某种类型的日志框架,那么,如果我理解正确上面的链接,我想我所有的发展是一个下liblib/src目录.

但是,如果我正在构建一个Web应用程序呢?我的Dart源文件在哪里?在packages?特别:

  1. 我在哪里为Web应用程序(不是lib)放置Dart源文件?
  2. 我的Web应用程序的"软件包"只是逻辑上与Java软件包类似的目录吗?
  3. Dart是否建议为其源代码提供每类1个文件的约定?

project-structure dart dart-pub

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

运行 ClojureScript:无法找到 cljs/main.clj

这里完全是菜鸟。ClojureScript我正在尝试第一次运行并遵循快速入门教程。然而,一进入...

clj --main cljs.main --compile hello-world.core --repl
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Execution error (FileNotFoundException) at clojure.main/main (main.java:40).
FileNotFoundException: Could not locate cljs/main__init.class or cljs/main.clj on classpath.
Run Code Online (Sandbox Code Playgroud)

clojure clojurescript

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

如何验证Prolog的回溯状态以执行与Clojure中的“懒惰序列”相同的任务?

这是用Clojure编写的数字的快速排序算法。它基本上是在“ The Clojure的喜悦”第二版(第133页)中找到的快速排序算法。我对它进行了少许修改,以期(希望)具有更好的可读性,因为原始文件感觉太紧凑了:

(defn qsort-inner [work]
   (lazy-seq        
      (loop [loopwork work]
         (let [[ part & partz ] loopwork ]
            (if-let [[pivot & valuez] (seq part)]
                  (let [ smaller? #(< % pivot)
                         smz      (filter smaller? valuez)
                         lgz      (remove smaller? valuez)
                         nxxt     (list* smz pivot lgz partz) ]
                        (recur nxxt))
                  (if-let [[oldpivot & rightpartz] partz]
                          (cons oldpivot (qsort-inner rightpartz))
                          []))))))

(defn qsort [ xs ]
   (qsort-inner (list xs)))
Run Code Online (Sandbox Code Playgroud)

该算法以调用开始,该调用将qsort传递的数字列表封装到另一个列表中(从而创建一个包含单个列表的列表),然后调用qsort-inner

(qsort [10 4 5 88 7 1])     ;; …
Run Code Online (Sandbox Code Playgroud)

clojure prolog quicksort lazy-sequences reify

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

基于源的安全模型是什么意思?

我正在研究 websocket RFC 6455,其中 web-socket 的安全模型被声明为基于原点的安全模型。还提到 Web 浏览器使用此安全模型。那么这个基于源的安全模型是关于什么的呢?

html browser security websocket

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