小编mpo*_*ien的帖子

有没有办法强制类加载器加载包,即使它的类没有被加载?

假设java代码库有一个名为"com.example"的包.

在运行时,我们可以通过调用获取此包

Package p = Package.getPackage( "com.example" ); //(returns null)
Run Code Online (Sandbox Code Playgroud)

甚至可以通过调用获得所有包的列表

Packages[] ps = Package.getPackages();
Run Code Online (Sandbox Code Playgroud)

问题是 - 如果ClassLoader尚未从包中加载任何类,则它们将无法用于这些函数调用.我们可以通过首先强制加载包中的一个类来强制它加载包,如下所示:

this.getClass().getClassLoader().loadClass( "com.example.SomeClass" );
Package p = Package.getPackage( "com.example" ); //(returns non-null)
Run Code Online (Sandbox Code Playgroud)

但是,这很hacky并且需要提前知道属于该包的某个类的名称.

所以问题是 - 有没有办法按名称获取Package的实例,无论ClassLoader是否做了什么?关于类加载/包在这种情况下如何工作的假设是否准确?

java class classloader package

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

错误:“无法连接到 MongoDB Atlas 集群中的任何服务器”

我的节点应用程序给我这条消息“无法连接到您的 MongoDB Atlas 集群中的任何服务器。确保您当前的 IP 地址在您的 Atlas 集群的 IP 白名单中”。

我已经在 IP 白名单上添加了我当前的 IP 地址以及 0.0.0.0。

下面是错误消息的图片和我为连接它而编写的代码。我是 node.js 和 mongodb 的新手。我查看了这里的所有解决方案,但没有一个能够解决这个问题。

var express = require('express');
var bodyparser = require('body-parser');
var mongoose = require('mongoose');

var app = express();
app.use(bodyparser.json());

mongoose
     .connect("mongodb+srv://<username:password>@my-cluster.mongodb.net/test?retryWrites=true&w=majority", 
     { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true })
     .then(() => console.log( 'Database Connected' ))
     .catch(err => console.log( err ));

    app.listen(3003)
Run Code Online (Sandbox Code Playgroud)

这是我在运行 nodemon 后收到的错误。

[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
MongooseError [MongooseServerSelectionError]: Could not connect to any servers …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js express

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

如何使用纬度/经度数据进行有效范围搜索+计数?

我正在处理由纬度/经度对表示的大量点(这些点不一定是唯一的,集合中可能有多个点位于同一位置).这些点存储在数据库中.

我需要做的是找出一种有效执行搜索的方法,以获得位于任意点的给定半径(例如,25英里)内的点数.计数不需要100%准确 - 更重要的是,它必须快速,并且合理地接近正确的计数.通过在WHERE子句中使用带有一些三角函数的查询来过滤点到参考点的距离,可以使用SQL执行此操作.不幸的是,这个查询非常非常昂贵,并且缓存不太可能提供很多帮助,因为位置将非常分散.

我最终希望构建某种内存结构,能够有效地处理这种操作 - 牺牲一些数据的准确性和活力(可能每天仅重建一次)以换取速度.我一直在研究kd-tree,但我还不清楚这可以应用于纬度/经度数据(与2d平面中的x,y数据相对).

如果有人有任何想法或解决方案我应该调查,我真的很感激 - 所以提前谢谢.

algorithm geography geospatial latitude-longitude data-structures

10
推荐指数
2
解决办法
4686
查看次数

在java枚举中你可以拥有的成员数限制是多少?

假设你在这样的java中有一个假设的枚举(纯粹用于演示目的,这不是我非常期待使用的代码):

enum Example{
    FIRST,
    SECOND,
    THIRD,
    ...
    LAST;
}
Run Code Online (Sandbox Code Playgroud)

在编译器停止之前,你可以在枚举中拥有的最大成员数是多少?

其次,当您的代码引用枚举时,运行时是否有任何性能差异,例如10个成员而不是100或1,000(除了存储大型类所需的明显内存开销)?

java compiler-construction performance enums runtime

6
推荐指数
2
解决办法
3447
查看次数