小编Tro*_*ing的帖子

用于包装方法的Java注释

我有很多样板代码基本上遵循这种模式:

function doSomething() {
  try {
    [implementation]
    [implementation]
    [implementation]
    [implementation]
  } catch (Exception e) {
    MyEnv.getLogger().log(e);
  } finally {
    genericCleanUpMethod();
  }
}
Run Code Online (Sandbox Code Playgroud)

我想创建自己的注释来清理我的代码:

@TryCatchWithLoggingAndCleanUp
function doSomething() {
  [implementation]
  [implementation]
  [implementation]
  [implementation]
}
Run Code Online (Sandbox Code Playgroud)

方法签名变化很大(取决于方法的实际实现),但样板try/catch/finally部分始终相同.

我想到的注释会自动用整个try...catch...finallyhoopla 包装带注释的方法的内容.

我一直在寻找一种直截了当的方法,但却没有找到任何东西.我不知道,也许我只是看不到所有注释树木的树林.

关于如何实现这样的注释的任何指针都将非常感激.

java methods annotations

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

Postgres中的位图堆扫描非常慢

我有以下包含流量测量数据的简单表:

CREATE TABLE "TrafficData"
(
  "RoadID" character varying NOT NULL,
  "DateID" numeric NOT NULL,
  "ExactDateTime" timestamp NOT NULL,
  "CarsSpeed" numeric NOT NULL,
  "CarsCount" numeric NOT NULL
)
CREATE INDEX "RoadDate_Idx" ON "TrafficData" USING btree ("RoadID", "DateID");
Run Code Online (Sandbox Code Playgroud)

列RoadID唯一标识,其数据被记录的道路,而DateID标识数据年份(1..365)的日子 - 基本上ExactDateTime的四舍五入表示.

我有大约100.000.000行; 有在列"RoadID" 1.000不同的值,并在列"DateID" 365倍不同的值.

然后我运行以下查询:

SELECT * FROM "TrafficData"
WHERE "RoadID"='Station_1'
AND "DateID">20100610 AND "DateID"<20100618;
Run Code Online (Sandbox Code Playgroud)

这需要多达三个令人难以置信秒完成了,我不能为我的生命找出原因.

EXPLAIN ANALYZE给出了以下输出:

Bitmap Heap Scan on "TrafficData"  (cost=104.84..9743.06 rows=2496 width=47) (actual time=35.112..2162.404 rows=2016 loops=1)
  Recheck Cond: ((("RoadID")::text = 'Station_1'::text) AND ("DateID" > 20100610::numeric) AND ("DateID" …
Run Code Online (Sandbox Code Playgroud)

postgresql indexing performance

6
推荐指数
1
解决办法
5561
查看次数

标签 统计

annotations ×1

indexing ×1

java ×1

methods ×1

performance ×1

postgresql ×1