假设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是否做了什么?关于类加载/包在这种情况下如何工作的假设是否准确?
我的节点应用程序给我这条消息“无法连接到您的 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) 我正在处理由纬度/经度对表示的大量点(这些点不一定是唯一的,集合中可能有多个点位于同一位置).这些点存储在数据库中.
我需要做的是找出一种有效执行搜索的方法,以获得位于任意点的给定半径(例如,25英里)内的点数.计数不需要100%准确 - 更重要的是,它必须快速,并且合理地接近正确的计数.通过在WHERE子句中使用带有一些三角函数的查询来过滤点到参考点的距离,可以使用SQL执行此操作.不幸的是,这个查询非常非常昂贵,并且缓存不太可能提供很多帮助,因为位置将非常分散.
我最终希望构建某种内存结构,能够有效地处理这种操作 - 牺牲一些数据的准确性和活力(可能每天仅重建一次)以换取速度.我一直在研究kd-tree,但我还不清楚这可以应用于纬度/经度数据(与2d平面中的x,y数据相对).
如果有人有任何想法或解决方案我应该调查,我真的很感激 - 所以提前谢谢.
algorithm geography geospatial latitude-longitude data-structures
假设你在这样的java中有一个假设的枚举(纯粹用于演示目的,这不是我非常期待使用的代码):
enum Example{
FIRST,
SECOND,
THIRD,
...
LAST;
}
Run Code Online (Sandbox Code Playgroud)
在编译器停止之前,你可以在枚举中拥有的最大成员数是多少?
其次,当您的代码引用枚举时,运行时是否有任何性能差异,例如10个成员而不是100或1,000(除了存储大型类所需的明显内存开销)?
java ×2
algorithm ×1
class ×1
classloader ×1
enums ×1
express ×1
geography ×1
geospatial ×1
mongodb ×1
node.js ×1
package ×1
performance ×1
runtime ×1