小编jay*_*100的帖子

Class API中getDeclaredConstructors和getConstructors有什么区别?

我注意到在Java Reflection API中有两种不同的方法来调用构造函数:getDeclaredConstructors/ getConstructorsmethod.虽然Java文档略有不同(getDeclaredConstructors似乎暗示它返回所有构造函数而不是公共构造函数),但不清楚为什么API明确支持这两种不同的方法.

更重要的是,我想知道:如果我们动态调用类,一个方法何时会优于另一个方法?例如,访问私有构造函数的目的是什么?

java reflection constructor

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

使用Solr搜索索引作为数据库 - 这是"错误的"吗?

我的团队正在与使用Solr作为搜索索引的第三方CMS合作.我注意到,似乎作者使用Solr作为各种类型的数据库,因为返回的每个文档都包含两个字段:

  1. Solr文档ID(基本上是类名和数据库ID)
  2. 整个对象的XML表示

所以基本上它运行对Solr的搜索,下载对象的XML表示,然后从XML实例化对象,而不是使用id在数据库中查找它.

我的直觉告诉我这是一个不好的做法.Solr是一个搜索索引,而不是一个数据库......所以对我来说更有意义的是对Solr执行复杂的搜索,获取文档ID,然后将相应的行拉出数据库.

当前的实现是否完美无缺,或者是否有数据支持这种重构成熟的想法?

编辑:当我说"XML表示"时 - 我的意思是一个存储字段,其中包含所有对象属性的XML字符串,而不是多个存储字段.

java mysql database solr

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

Clojure:在REPL上加载依赖项

我最近学到了(感谢技术),在REPL ---

这失败了:

user=> (:require [clojure.set :as set])
java.lang.ClassNotFoundException: clojure.set (NO_SOURCE_FILE:24)
Run Code Online (Sandbox Code Playgroud)

虽然这成功了:

user=> (require '[clojure.set :as cs]) 
nil
Run Code Online (Sandbox Code Playgroud)

在加载clojure.set类时.

上下文:前一行是从命名空间源文件复制的.

我的主要问题是:通过交换:和'字符,我们所做的改变什么,现在允许后一个命令成功?

我的第二个问题是,一般来说 - 与在普通的clojure源文件中做事相比,REPL做事的准则是什么?这里假设我们可以从LEININGEN项目的根目录加载我们的repl,因此至少可以在依赖项子目录的磁盘上使用这些jar.

clojure read-eval-print-loop

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

如何以原子方式运行mvn测试(无需重建源代码)?

我想通过单元测试运行maven项目生命周期,然后结束.

如何跳过重新编译和重新解析依赖项并仅运行测试阶段?

testing lifecycle maven

28
推荐指数
2
解决办法
7120
查看次数

信息日志的PHP error_log的等价物?

嗨伙计们:我用error_log我的日志记录,但我意识到必须有一种更惯用的方式来记录应用程序的进度.有info_log吗?或同等学历 ?

php logging

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

覆盖类路径中的默认hadoop jar

我已经看到很多方法使用用户类路径作为hadoop的先例.通常,如果m/r作业需要特定版本的库,而hadoop巧合地已使用旧版本(例如jackson的json解析器或commons http等),则会执行此操作.

无论如何:我见过:

mapreduce.task.classpath.user.precedence
mapreduce.task.classpath.first
mapreduce.job.user.classpath.first
Run Code Online (Sandbox Code Playgroud)

这些参数中的哪一个是在我的作业配置中设置的正确参数,以便强制映射器和缩减器具有hadoop_classpath在hadoop默认依赖关系罐之前放置用户定义的jar 的类路径?

顺便说一句,这与这个问题有关: 我最近发现的Dynamodb requestHandler接受是由于jar冲突造成的.

hadoop jar classpath operator-precedence

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

Clojure:确定是否声明了变量

如何测试变量已被声明或分配(即检查是否定义了"a",当我希望程序调用这样的代码时(def a(create-a))?

并且相关---这个问题的答案如何解决已经宣布的符号(即函数)的解决问题? Clojure:确定函数是否存在

似乎定义的变量应该以与定义的函数相同的意义检查,但我发现确定函数是否存在的解决方案不足以确定变量是否存在.

一些上下文:我正在为多开发人员项目编写单元测试,并希望确保测试数据和不同类中的方法已被定义.由于没有好的IDE支持clojure,在我看来,鉴于其结构松散,在测试其输出/内容之前测试方法名称和变量名称是好的.

unit-testing clojure variable-assignment

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

apt-get是否可以在Linux上安装Clojure(ubuntu 10)?

嗨伙计们:我注意到Clojure有一个包回购,所以我试过了

sudo apt-get install clojure

但是,安装失败,看起来有一个java依赖缺失...

  • 我在我的机器上正确安装了java:javac -version - > 1.6.0_26 ......

在任何情况下,我发现leiningan总是一个简单的方法,但我想我会试着看看它是否有效.有关此错误消息的任何想法?

以下包具有未满足的依赖项:clojure:取决于:libasm3-java但它不会被安装

ubuntu install clojure

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

迈向JAVA_HOME的"真正"定义

作为一个在*NIX系统(OS X,Ubuntu,...)之间切换的Java开发人员,尽管我总能"启动"我的JDK并且正在运行,但似乎在许多需要JAVA_HOME的软件包中没有明确的JAVA_HOME定义要设置 :

例如

  • MAVEN:"JAVA_HOME,指的是你的JDK目录"
  • HADOOP:"JAVA_HOME,它指定了Java 1.5.x安装的路径"
  • SUN:"JAVA_HOME是包含JRE的目录"

因此,我对这个问题有2个问题(任何见解都会受到欢迎,但具体来说,我有这两个问题):

1)mac os X java安装是否将目标从"JavaVM.frameworks"目录复制到usr/bin?

2)JAVA_HOME的"定义"是什么?显然,我们不能将JAVA_HOME简单地定义为"安装java的地方",因为这个定义是模糊的,因为java既可以存在于HOME位置(即/ System/Library/Fraemworks/.....),也可以或者,它也可以直接在/ usr/bin目录中?

我的想法

我相信JAVA_HOME实际上是指不仅仅是指二进制"java"程序.JAVA_HOME可能是指一组java相关目录和二进制文件的位置......但是,我仍然不清楚这包含了什么,而且我所提议的这个定义是否足够精确到有用.

java java-home

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

为高性能数据结构定义一组基本规则(java)

我通常可以互换地使用向量/ arraylists,hashmaps/treemaps和其他java集合,但有时存在功能API要求(例如,在某些情况下我可能需要排序数据集).

然而,最近,我发现需要将Java性能提升到我正在运行的某些算法的极限.

是否有一套高性能数据结构指南,我可以将其用作编码的基本规则?

我正在寻找一般规则,但在这种情况下,对以下问题的回答可能也非常有用:

1)什么时候应该使用多维数组而不是嵌套的集合?

2)向量与阵列列表 - 真的有性能差异吗?

3)集合API是否像谷歌的集合,java技巧(如反射和转换),以及其他常见的Java开发人员习惯用法在重载时往往会减慢JVM的速度?

4)在进行大量计算时,原语与常规对象(即Double vs double)是否会减慢JVM的速度?

5)在java程序中处理需要高性能的大型集合是否有其他重要的指导原则?

  • 注意:此时,我没有进行任何多线程...我意识到一旦开始并行化,就会有其他限制.

java collections performance guava

11
推荐指数
2
解决办法
967
查看次数