我试图将jodaTime中的一些方法作为常量。这些是方法:
mysql_crawl.query('SELECT prod_name, full_price, discount_price, quantity, prod_link, images, prod_desc, status FROM `catalogsearch_fulltext` WHERE MATCH(data_index) AGAINST("cream") LIMIT 0 , 10', function(error, product_data){
res.render('result.html',{product_data: product_data})
我搜索了包和类,但我找不到访问这些方法的方法。
我想知道如何访问这些方法以将它们放入常量中,例如jodaTime.getMonthOfYear()
jodaTime.getDayOfMonth()
jodaTime.getYearOfCentury()
答案 0 :(得分:0)
所以你试图存储应用程序启动时间的年,月和日?我想不出这种代码的任何其他用途。实施很简单;这是一些伪代码:
class MyClass {
static final Object DAY_OF_MONTH;
static {
DateTime now = DateTime.now();
DAY_OF_MONTH = now.getDayOfMonth();
}
}
如果你想引用这些方法本身,你可以使用lambdas更像这样的东西:
class MyClass {
static final Supplier<Integer> DAY_OF_MONTH;
static {
DateTime now = DateTime.now();
DAY_OF_MONTH = now::getDayOfMonth;
}
}
答案 1 :(得分:0)
假设您已定义DAY_OF_MONTH
和DAY_OF_YEAR
,则可以将它们作为lambdas传递:
Map<Integer, Runnable> commands = new HashMap<>();
commands.put(DAY_OF_MONTH, () -> jodaTime.getDayOfMonth());
commands.put(DAY_OF_YEAR, () -> jodaTime.getDayOfYear());
OR
您可以在Method
中保存Map
并使用反射。
Map<Method, ValueIForgotSinceYouDeletedCode> map = new HashMap<>()