小编Rob*_*bAu的帖子

覆盖java equals()方法 - 不工作?

我遇到了一个有趣(而且非常令人沮丧)的问题,equals()今天的方法导致了我认为是经过良好测试的类崩溃并导致我花了很长时间才能追踪的错误.

为了完整起见,我没有使用IDE或调试器 - 只是老式的文本编辑器和System.out.时间非常有限,这是一个学校项目.

无论如何 -

我开发一个基本的购物车可能包含ArrayListBook对象.为了贯彻落实addBook(),removeBook()以及hasBook()对车的方法,我想检查是否Book已在存在Cart.我走了 -

public boolean equals(Book b) {
    ... // More code here - null checks
    if (b.getID() == this.getID()) return true;
    else return false;
}
Run Code Online (Sandbox Code Playgroud)

一切都在测试中运行良好.我创建了6个对象并用数据填充它们.做了很多添加,删除,has()操作Cart,一切正常.我读到你可以拥有equals(TYPE var)或者equals(Object o) { (CAST) var }假设因为它有效,所以没关系太多.

然后我遇到了一个问题 - 我需要在Book类中创建一个包含它的Book对象.不会输入任何其他数据.基本上如下:ID

public boolean hasBook(int i) {
    Book b = new Book(i); …
Run Code Online (Sandbox Code Playgroud)

java overriding equals

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

PostgreSQL语法检查而不运行查询

我想验证包含sql查询的文件的语法,然后才能在我的CVS项目中提交它们.

为了做到这一点,我有一个commitinfo脚本,但我很难找到sql命令是否有效.psql似乎没有dryrun模式,并且从语法(在源代码中)构建我自己的postgresql-dialact测试器似乎是一个很长的延伸.

脚本可能包含多个查询,因此EXPLAIN不能包含它们.

任何提示?

sql postgresql cvs syntax parsing

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

Java堆转储错误 - 元数据似乎不是多态的

在尝试从正在运行的Java进程中获取堆转储时,我得到了这个Stacktrace.导致这种情况的原因以及如何进行正确的堆转储?

Dumping heap to dump.bin ...
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at sun.tools.jmap.JMap.runTool(JMap.java:201)
    at sun.tools.jmap.JMap.main(JMap.java:130)
Caused by: java.lang.InternalError: Metadata does not appear to be polymorphic
    at sun.jvm.hotspot.types.basic.BasicTypeDataBase.findDynamicTypeForAddress(BasicTypeDataBase.java:278)
    at sun.jvm.hotspot.runtime.VirtualBaseConstructor.instantiateWrapperFor(VirtualBaseConstructor.java:102)
    at sun.jvm.hotspot.oops.Metadata.instantiateWrapperFor(Metadata.java:68)
    at sun.jvm.hotspot.memory.DictionaryEntry.klass(DictionaryEntry.java:71)
    at sun.jvm.hotspot.memory.Dictionary.classesDo(Dictionary.java:66)
    at sun.jvm.hotspot.memory.SystemDictionary.classesDo(SystemDictionary.java:190)
    at sun.jvm.hotspot.memory.SystemDictionary.allClassesDo(SystemDictionary.java:183)
    at sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeClasses(HeapHprofBinWriter.java:942)
    at sun.jvm.hotspot.utilities.HeapHprofBinWriter.write(HeapHprofBinWriter.java:427)
    at sun.jvm.hotspot.tools.HeapDumper.run(HeapDumper.java:62)
    at sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:260)
    at sun.jvm.hotspot.tools.Tool.start(Tool.java:223)
    at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
    at sun.jvm.hotspot.tools.HeapDumper.main(HeapDumper.java:83)
    ... 6 more
Run Code Online (Sandbox Code Playgroud)

环境:CentOS 64位,Java OpenJDK运行时环境(内置1.8.0_31-b13)OpenJDK 64位服务器VM(内置25.31-b07,混合模式)

Usign ps看到所使用的Java版本:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-1.b13.el6_6.x86_64/jre/bin/java
Run Code Online (Sandbox Code Playgroud)

我的第一次尝试是:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-1.b13.el6_6.x86_64/bin/jmap  -dump:format=b,file=dump.bin 14984
Run Code Online (Sandbox Code Playgroud)

这让我:

14984: Unable …
Run Code Online (Sandbox Code Playgroud)

java heap-dump invocationtargetexception

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

模糊测试(框架)Web应用程序?

是否有可以在WebApplications上执行模糊测试的框架?我知道Selenium并且WebDriver用于构建Web应用程序的测试,但我特别感兴趣的是内置模糊测试的库,框架或项目,因此我不需要重新发明轮子.

例如,我可以从这些功能中受益:

  • 随机链接点击
  • 随机填表
  • '后退'和'前进'点击
  • 随机鼠标移动和点击
  • JavaScript支持

有谁知道实现这些功能的项目?(最好是Java :))

javascript testing web-applications fuzzing random-testing

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

Java enum overkill?

我经常需要一个可以表示为简单枚举类型的类的变量的情况,例如:

private enum PageOrder {DOWN_THEN_OVER, OVER_THEN_DOWN};
Run Code Online (Sandbox Code Playgroud)

如果在包含变量的类中声明枚举类型,那么我必须使用不合适的限定名称MyClass.PageOrder.但是如果我创建一个新类,我只有一个简单的枚举声明类,这对我来说似乎有些过分.

出于这个原因,我经常使用整数而不是枚举类型.

有关此主题的任何意见/建议吗?

java enums

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

int 上的余数运算符导致 java.util.Objects.requireNonNull?

我试图从某些内部方法中获得尽可能多的性能。

Java代码是:

List<DirectoryTaxonomyWriter> writers = Lists.newArrayList();
private final int taxos = 4;

[...]

@Override
public int getParent(final int globalOrdinal) throws IOException {
    final int bin = globalOrdinal % this.taxos;
    final int ordinalInBin = globalOrdinal / this.taxos;
    return this.writers.get(bin).getParent(ordinalInBin) * this.taxos + bin; //global parent
}
Run Code Online (Sandbox Code Playgroud)

在我的分析器中,我看到 1% 的 CPU 支出java.util.Objects.requireNonNull,但我什至不称之为。在检查字节码时,我看到了:

 public getParent(I)I throws java/io/IOException 
   L0
    LINENUMBER 70 L0
    ILOAD 1
    ALOAD 0
    INVOKESTATIC java/util/Objects.requireNonNull (Ljava/lang/Object;)Ljava/lang/Object;
    POP
    BIPUSH 8
    IREM
    ISTORE 2
Run Code Online (Sandbox Code Playgroud)

所以编译器会生成这个(没用的?)检查。我在原语上工作,null无论如何都不能,那么编译器为什么会生成这一行?这是一个错误吗?还是“正常”行为?

(我可能会使用位掩码,但我只是好奇)

[更新]

  1. 运营商似乎与它无关(请参阅下面的答案)

  2. 使用 …

java performance modulo primitive-types null-check

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

Postgresql函数最喜欢的单元测试方法?

我习惯于开发Java应用程序,但对于一个项目,我做了posgresql函数.我想为这些功能编写小型单元测试.

我目前正在寻找标准方法.我找到了pgTap和pgUnitTest,以及2007年的一篇文章:http://www.bigsmoke.us/postgresql-unit-testing/

你有什么方法对postgresql函数进行单元测试?你如何模拟数据/单独的testdata?如何隔离单元测试?哪个框架或方法受到青睐(我使用jUnit和testNG for java)?

postgresql frameworks unit-testing mocking plpgsql

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

如何使用Lucene的新分析InfixSuggester API实现自动建议?

我是Lucene的绿手,我想实现自动建议,就像google一样,当我输入像'G'这样的字符时,它会给我一个列表,你可以尝试自己.

我在整个网上搜索过.没有人这样做,它给了我们一些新的工具包建议

但我需要一个例子告诉我该怎么做

有人可以帮忙吗?

java lucene autocomplete search-suggestion

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

从JSON输出泽西moxy中删除"type"

如何type从我拥有的JSON输出中删除.我有一个包含REST服务输出的类/ bean.我正在使用jersey-media-moxy转换.

服务

@Resource
public interface MyBeanResource
{
    @GET
    @Path("/example")
    @Produces( MediaType.APPLICATION_JSON )
    public Bean getBean();
}
Run Code Online (Sandbox Code Playgroud)

@XmlRootElement
class Bean
{
   String a;
}  
Run Code Online (Sandbox Code Playgroud)

我想添加一些功能(用于使用构造函数初始化bean)

class BeanImpl extends Bean
{
    BeanImpl(OtherClass c)
    {
        a = c.toString()
    }
}
Run Code Online (Sandbox Code Playgroud)

输出的JSON是:

{type:"beanImpl", a:"somevalue"}

我不想要type我的JSON.我该如何配置?

java json jersey marshalling moxy

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

在pascal voc xml中注释图像

我需要一个工具来用矩形边界框注释图像.输出将采用pascal voc xml格式.注释和图像将成为卷积神经网络用于对象检测的训练数据集的一部分.我将自己手动注释图像.

我考虑过以下工具,但它们不支持pascal-voc.

Labelme,懒惰,Pilab,没有名字

有没有一个注释工具可以节省我的时间?

machine-learning image-processing object-detection computer-vision

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