小编Sky*_*net的帖子

将派生类传递给需要覆盖期望基类的方法

我有一个类A,带有抽象方法doAction(BaseClass obj),期望一个类型为BaseClass的参数

public class A {
    //....
    abstract void doAction(BaseClass obj);
    //....
}
Run Code Online (Sandbox Code Playgroud)

现在,我有另一个需要扩展A的B类.但是,B的doAction方法需要使用扩展BaseClass的对象DerivedClass.

public class B extends class A {
     //..
     void doAction(DerivedClass obj) {
          obj.callMethodAvailableOnlyInDerivedClass();
      }

 }
Run Code Online (Sandbox Code Playgroud)

我如何处理这种情况,我需要将类型为DerivedClass的param传递给在期望BaseClass时被覆盖的方法?

谢谢!

java polymorphism inheritance

15
推荐指数
1
解决办法
4596
查看次数

Java中的Mongo ISODate查询

我有一个mongo查询要执行:

query = { "dateField" : { "$gte" : ISODate('2011-11-10T07:45:32.962Z')  } }
Run Code Online (Sandbox Code Playgroud)

当我db.Collection.find(query)在mongo shell上执行操作时,我可以检索结果.

我怎么能用Java查询呢?我尝试根据Date参数构造一个String.但是在构建String的过程中,它最终会被传递"ISODate('2011-11-10T07:45:32.962Z')"而不是ISODate('2011-11-10T07:45:32.962Z')(没有周围的引号).

使用Java API构建此查询的最佳方法是什么?

谢谢 !

java mongodb mongo-java

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

BeanUtils将java.util.Map转换为嵌套bean

我有一个Java bean,它有一个字段,而这个字段又是另一个bean

public class BeanOne {
   private String fieldOne;
   private BeanTwo fieldTwo;

   public String getFieldOne() {return this.fieldOne;}  
   public void setFieldOne(String fieldOne){this.fieldOne = fieldOne}

   public BeanTwo getFieldTwo() {return this.fieldTwo;}  
   public void setFieldTwo(BeanTwo fieldTwo){this.fieldTwo = fieldTwo}
}

public class BeanTwo {
   private String fieldOne;

   public String getFieldOne() {return this.fieldOne;}  
   public void setFieldOne(String fieldOne){this.fieldOne = fieldOne}
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将地图传递给BeanUtils以尝试将以下地图转换为BeanOne

Map beanOneMap = new HashMap<String, Object>();
beanOneMap.put("fieldOne", "fieldOneValue");
Map beanTwoMap = new HashMap<String, Object>();
beanTwoMap.put("fieldOne", "fieldOneValue");
beanOneMap.put("fieldTwo", beanTwoMap);

BeanOne beanOne = new BeanOne();
BeanUtils.populate(beanOne, beanOneMap); …
Run Code Online (Sandbox Code Playgroud)

java pojo javabeans apache-commons-beanutils

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

MongoDB - 强制将索引+工作集保存在RAM中

我目前正在使用MongoDB来存储单个数据集合.此数据大小为50 GB,并且具有大约95 GB的索引.我正在运行一台256 GB RAM的机器.我基本上希望将所有索引和工作集都放在RAM中,因为该机器专门分配给mongo.

目前我看到,虽然mongo运行时的集合大小为50 GB +索引大小为95 GB,但机器中使用的总RAM小于20 GB.

有没有办法强制mongo利用可用的RAM,以便它可以将所有索引和工作集存储在内存中?

mongodb

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

使用标准Java库获取Writer的InputStream

我有一个将数据写入 OutputStream 但需要将 OutputStream 的内容作为 InputStream 返回的方法

public InputStream getInputStreamOfData(type param) {
    // ..... data 
    OutputStreamWriter writer = new OutputStreamWriter();
    writer.write(data);
    // convert writer object to an InputStream 
}
Run Code Online (Sandbox Code Playgroud)

我遇到了一些库来执行此操作,例如 IOUtils 和其他基于线程的方法。有没有一种简单的方法可以使用标准 Java 库来实现这一点?我想将编写器中的内容作为 InputStream 返回以供调用方法使用。

谢谢!

java inputstream outputstream stream

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

MongoDB点表示法查询

我有一个BasicDBObject调试时似乎持有:

{ "_id" : { "p_key" : { "$date" : "2012-02-02T00:00:00Z"} , "d_key" : 222} , "t_key" : 10195 , "w_key" : 4 , "f_key" : { "$date" : "2012-02-02T00:00:00Z"}}
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试:

dbObject.get("_id.d_key"));
Run Code Online (Sandbox Code Playgroud)

我得到一个空指针异常.

对我在这里做错了什么的想法?

我试图获得d_key内部的价值_id.

mongodb mongodb-java

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

Gremlin再次使用管道输出作为输入

我有一个看起来像的图表

a --father_of--> 1 --wife_of--> b --father_of-->2 --wife_of--> c --father_of--> 3--wife_of--> d --father_of --> 5--wife_of-->e
Run Code Online (Sandbox Code Playgroud)

我想写一个查询,它给了我从树开始的所有父亲

我可以写一个级别

g.V('name','a').out(father_of).out(wife_of) 这给了b

如何编写一个递归查询,将b作为管道的输入,以便查询给出节点b,c,d和e.

neo4j graph-databases gremlin titan tinkerpop

0
推荐指数
1
解决办法
128
查看次数

Java中的常量连接

如果我有常数

public static final String PREFIX = "meter.";

public static final String READING = "reading";

public static final String LEVEL = "level";
Run Code Online (Sandbox Code Playgroud)

我有一个代码

run() {
dao.set("meter.reading", x);
dao.set("meter.level", y);
}
Run Code Online (Sandbox Code Playgroud)

鉴于run()每天会被调用数百万次,

写下面的代码会因为串联而降低我的性能吗?我想保持常量与前缀分开,因为它们在各种上下文中使用和不使用前缀

run() {
dao.set(PREFIX+READING, x);
dao.set(PREFIX+LEVEL, y);
}
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
169
查看次数